Note concernant le statut de ce document

NB : Le texte présenté ci-après est quasiment le même que celui du data paper publié dans Cybergéo. En revanche, les données et le code ont été mis à jour. Dernier passage sur ce document : 20 mars 2024.

Titre du data paper : « Les communes nouvelles françaises (2012-2022) : une méthode pour l’analyse de données à l’échelon municipal selon des limites évolutives » (Bideau, Ysebaert, 2022b)

Mise à jour après 2022 : G. Bideau.

Ante-scriptum : Gérer la parution de nouvelles données

Étapes à réaliser lors de la sortie de nouvelles données :

  1. Importer manuellement le fichier des communes nouvelles (ici) et celui des tables de passages depuis 2003 ().

  2. Modifier le data_prep (et data_prep budget) en passant en revue les différents moments d’import des donnée et les “202x” dans le texte.

  3. Après avoir rajouté la table de passage la plus récente ci-dessous, vérifier les doubles fusions et fusions successives (cf. quelques lignes de code dans la section 3.3.2, qui permettent simplement de les repérer).

  4. Traiter manuellement la question de la néotoponymie dans le fichier ad hoc (“data-raw/communes_nouvelles/table_passage_perso_2012-20XX(01).csv”) :

  1. Partir du fichier des communes nouvelles de l’année en question : le copier-coller dans la table perso, en traitant à la main le cas des fusions successives. (2) Renseigner manuellement la question de la néotoponymie.

-

Auteurs

Gabriel Bideau Université Paris Cité – UMR Géographie-Cités 8504 CNRS Campus des Grands Moulins Bâtiment Olympe de Gouges 8 place Paul Ricœur F-75013 Paris

Ronan Ysebaert Université Paris Cité – UMS 2414 Riate Campus des Grands Moulins Bâtiment Olympe de Gouges 8 place Paul Ricœur F-75013 Paris

Résumé

Ce data paper détaille la réalisation d’une base de données permettant de décrire le phénomène des créations des “communes nouvelles”, entre 2012 et 2024, en France. La création de ces nouvelles entités territoriales, par fusions de plusieurs communes, pose des problèmes d’appariement et de potentielles lacunes de données. À partir de données issues de la statistique publique (INSEE – Institut National de la Statistique et des Études Économiques – et IGN – Institut Géographique National), il s’agit de proposer un processus de compilation et d’agrégation des données pour les communes ayant fusionné. Cette contribution présente la méthode et assure les conditions de la reproductibilité.

Abstract

This data paper presents the creation of a database to describe the phenomenon of “new municipalities” (communes nouvelles) between 2012 and 2024, in France. Potential data gap and consistency issues arise with the creation of these new territorial entities aggregating municipal mergers. Using data from official statistics (INSEE - National Institute for Statistics and Economic Studies - and IGN - National Geographic Institute), this paper describes a process of compilation and aggregation of data. The method is detailed here, to allow its reproducibility.

Mots-clés

Administration, gouvernement local, fusion de données, recomposition territoriale, commune, France.

Keywords

Administration, local government, data aggregation, territorial restructuring, municipality, France.

Introduction

Depuis 2012, un mouvement sans précédent de constitution de “communes nouvelles” se déploie. Ces regroupements représentent 3,4% de la population française ; entre 2012 et le 1er janvier 2022, 2536 communes (soit 7% des communes françaises) ont contribué à la création de 787 communes nouvelles (Bideau, 2019). En effet, le maillage territorial français, parfois qualifié de « mille-feuille », a fait l’objet de nombreuses études et critiques, visant en particulier une hypothétique spécificité, bien déconstruite néanmoins (Grison, 2016).

L’échelon communal est sans doute celui qui a été le plus discuté, présenté comme le territoire d’identification d’une partie des citoyens mais également comme un résidu de la trame paroissiale d’Ancien Régime, cette dernière ayant été peu réformée depuis et aujourd’hui inadaptée à l’administration territoriale du fait du trop grand nombre d’entités (Ozouf-Marignier, Verdier, 2013). Cela a conduit l’État à mener des politiques de réduction du nombre de communes, comme dans les années 1970 avec les fusions dites « Marcellin » (Lenfant, 2018 ; Tellier, 2017). Aux tournant des années 2010, dans un contexte de transformation de l’organisation territoriale française1 plusieurs parlementaires et élus locaux ont voulu faciliter les fusions de communes en créant un statut plus attractif pour l’entité nouvellement créée. Il s’agira du statut de « commune nouvelle », créé par la loi du 16 décembre 2010, plus précisément les articles 21 à 25 du chapitre III au sein du Titre II « Adaptation des structures à la diversité des territoires » (“Loi n-1563 du 16 décembre 2010 de réforme des collectivités territoriales,” 2010), statut modifié ensuite (“Loi n-809 du 1er août 2019 visant à adapter l’organisation des communes nouvelles à la diversité des territoires,” 2019). Les premières fusions n’ont cependant pas eu lieu avant 2012, échéance qui borne le choix des données intégrées à la base que nous présentons. Des incitations fiscales seront ensuite votées pour tenter d’accélérer un mouvement d’abord timide (Bideau, 2019 ; Bideau, 2020).

La commune nouvelle est un statut qui permet à plusieurs communes (appelées historiques ou fusionnantes) de se regrouper pour ne former qu’une seule entité administrative (il n’y a plus qu’une seule personnalité juridique et budgétaire). Des subdivisions peuvent être maintenues à l’intérieur de la commune nouvelle : il s’agit des « communes déléguées ». Cependant, ces dernières n’ont qu’un rôle assez limité pour ne pas dire symbolique : il existe un conseil de la commune déléguée mais il est uniquement consultatif, un maire délégué peut être nommé mais avec des pouvoirs très restreints, il reste la possibilité de mentionner le nom de la commune déléguée dans l’état-civil etc.

Si les dimensions juridiques (Aubelle, 2016 ; Lenfant, 2018 ; Verpeaux, Pecheul, 2016) ou politiques (Frinault, 2017 ; Kada, 2017; Pasquier, 2017 ; Ville, 2017) ont été développées dans des travaux récents, la création de ces nouveaux périmètres de collectivités locales pose un certain nombre de problèmes lorsqu’il s’agit de traiter des données statistiques faisant référence aux communes. Il faut en effet procéder à des appariements de données sur des périmètres variables dans le temps, et donc la création de tables de passage. Une analyse plus détaillée et systématique du phénomène des communes nouvelles à l’échelle nationale a donc nécessité la création d’une base de données spécifique, qui est l’objet de cette contribution.

Lorsqu’il s’agit d’étudier les communes françaises, les données disponibles (par exemple via l’INSEE – Institut National de la Statistique et des Études Économiques) sont nombreuses mais sont en général fournies en fonction d’une géographie administrative spécifique – ne correspondant d’ailleurs pas toujours au millésime des données en question, qu’il s’agisse d’un délai de compilation des statistiques ou du fonctionnement du recensement en France qui repose sur la compilation de données issues de plusieurs enquêtes annuelles. L’étude des regroupements en devient malaisée. La base de données qui est présentée dans cet article, ainsi que le code qui y est associé ont pour objectif de permettre un travail d’analyse du phénomène de fusions en communes nouvelles.

Ce travail s’inscrit, plus globalement, dans une réflexion sur l’effet de MAUP (Openshaw, 1983 ; Wong, Amrhein, 1996 ; Sanders, 2009). Ce Modifiable Areal Unit Problem interroge l’impact du découpage dans la perception et l’analyse des phénomènes spatiaux, qu’il s’agisse d’un effet d’échelle (on ne perçoit pas les mêmes répartitions en fonction de l’échelle à laquelle les phénomènes sont représentés, par exemple la part de navetteurs travaillant hors de leur commune de résidence est mécaniquement réduite lors de fusions de communes) ou d’un effet de zonage (impact des délimitations, à l’intérieur d’un même espace). Ces redécoupages ne sont pas toujours exempts de manipulations des périmètres électoraux (gerrymandering) puisque l’effet de MAUP peut avoir des implications très concrètes sur les résultats d’élections (Bussi, Badariotti, 2004). Dans le cas des communes nouvelles, la création d’une nouvelle entité, qui sera prise en compte comme échelle de gouvernement, périmètre de partage fiscal ou encore modalité de calcul pour les flux de péréquation, peut engendrer un effet de MAUP : celui-ci est alors recherché comme permettant, par exemple, une péréquation des ressources entre des communes plus riches et moins riches. Notre base de données, permettant de différencier une vision avant fusion (les communes fusionnantes ou historiques) et une vision après fusion (les communes nouvelles), pourra être utilisée pour observer cet effet de MAUP comme cela a déjà été fait pour d’autres espaces (Gbenyo, Dubé, 2018).

Certains outils existent déjà pour gérer l’évolution des codes géographiques officiels (code communal). Le plus pertinent est sans doute le package COGugaison, construit pour le langage R (Antunez, 2017). Ce dernier propose plusieurs fonctionnalités : tout d’abord, il permet d’identifier le millésime du code officiel géographique utilisé dans une base de données et ensuite il propose quelques outils de visualisation des données au cours du temps ou de fusions de données de stock2. L’originalité de la démarche que nous proposons, outre de proposer une base déjà constituée, est de fournir une méthode d’agrégation des données, quel que soit le type de ces dernières (stock, ratio et variables textuelles). En détaillant les changements liés à l’évolution des codes géographiques, l’objectif est de permettre l’analyse des territoires construits par les fusions communales.

Cet article présente une base permettant l’analyse des communes nouvelles, élaborée à partir des données issues de la statistique publique. Sa construction s’inscrit dans une démarche heuristique, dans le but de mieux appréhender l’objet d’étude que sont les communes nouvelles. Il a fallu, pour cela, non seulement gérer l’identification des entités territoriales à différentes dates mais aussi agréger les données de manière ad hoc et cohérente avec l’objet institutionnel ainsi remodelé. Les procédures utilisées pourront aisément être reproduites sur d’autres cas de fusions. En effet, la reconfiguration des territoires est un phénomène qui se retrouve à de multiples échelles, et bien plus largement que dans le cas français (Comité européen sur la démocratie locale et régionale (CDLR), 2007 ; Vanier, 2002). Les évolutions de la carte régionale suite à la loi NOTRe de 2015 ont par exemple déjà été étudiées avec plus ou moins de profondeur historique (Brennetot, Ruffray, 2014 ; Doré, 2021 ; Dumont, 2018) mais les possibilités d’analyses sont loin d’être épuisées dans le cadre municipal (Bideau, Ysebaert, 2022a).

Nous présenterons tout d’abord les objectifs généraux de la réalisation de cette base de données en posant les termes du problème de l’appariement, puis les données disponibles, avant de détailler les méthodes mises en œuvre et d’esquisser quelques applications possibles. Le data paper, la base de données et le code commenté sont diffusés de manière à permettre la reproductibilité de la démarche 3.

1 - Objectifs généraux : gérer des structures évolutives

Les communes françaises sont identifiées par l’INSEE via un code communal théoriquement unique (variable CODGEO), dont l’usage est bien connu. Il est constitué de cinq chiffres, dont les deux premiers (ou trois pour l’outre-mer) reprennent le numéro du département concerné. À un instant t, chaque CODGEO ne fait référence qu’à une seule commune, c’est de ce point de vue un identifiant unique.

Ce caractère unique du code communal n’est cependant pas stable dans le temps : outre quelques très rares cas de changements de CODGEO 4, lors des fusions, l’INSEE a choisi de donner à la nouvelle entité le code de la commune qui en devient le chef-lieu. Ce procédé, qui permet de ne pas avoir à recréer de nouveaux CODGEO pose un problème épineux si on fusionne des données de différentes années puisque l’appariement des séries statistiques peut être erroné, en raison des changements de périmètres. Cela implique alors de vérifier conjointement le millésime des données et le millésime des limites des communes.

À partir des données INSEE et du fond géographique de référence au 1er janvier 2011 (avant toute création de commune nouvelle), il s’agit de structurer la base de données pour qu’elle comporte :

La jointure entre les données et les géométries de référence est évidemment facilitée pour permettre cartographie et analyse spatiale.

Figure 1 : Schéma général de la construction de la base de données
Figure 1 : Schéma général de la construction de la base de données

Il est à noter que le phénomène des communes nouvelles n’a, du moins pour l’instant, pas du tout touché les communes d’outre-mer ni celles de Corse. Par conséquent, du fait des spécificités territoriales et administratives de ces espaces, nous avons choisi de nous concentrer sur les seules communes de l’« Hexagone », Corse exclue.

2 - Présentation des différentes sources utilisées

Les sources utilisées pour la construction de données décrivant les communes fusionnées proviennent d’une part de l’IGN (Institut Géographique National) pour les géométries de référence nécessaires (2.1) et l’INSEE pour les données statistiques (2.2) ainsi que celles permettant de documenter les fusions de communes (2.3). Ces sources sont librement accessibles et permettent de redistribuer des données sources bien documentées selon des protocoles ouverts, compatibles avec les exigences de reproductibilité.

2.1 - Les géométries de référence

L’IGN propose des données multiples, dont un fond géographique à l’échelle des communes. Nous avons utilisé le fond Geofla®Communes édition 2011 (France Métropolitaine) puisque l’année 2011 est la dernière avant toute création de commune nouvelle.

2.2 - Les données contextuelles statistiques : fichiers sources et indicateurs cibles

Afin de caractériser les spécificités des communes nouvelles, plusieurs tables statistiques à l’échelon communal sont disponibles. Étudier l’ensemble des communes nouvelles impliquait de prendre comme point de départ la géographie administrative au 1er janvier 2011. Néanmoins, lorsque l’INSEE publie des données, le millésime annoncé est souvent différent de la géographie administrative utilisée (ces éléments sont alors documentés dans les métadonnées). Ainsi, les tables que nous avons utilisées sont généralement identifiées avec le millésime 20096 pour la géographie administrative au 1er janvier 2011.

Plusieurs bases de données ont été utilisées, détaillées dans le tableau 1. Le détail des variables retenues est accessible dans le tableau annexe 1, sachant que l’ajout de données supplémentaires présentes dans les bases utilisées est assez aisé7.

variables <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "ind_target"))
# Pour sélectionner de nouvelles variables, cocher avec "X" dans le fichier meta.xlsx
target <- subset(variables, variable_selec == "X")

tableau <- unique(target[, c("SOURCE", "PRODUCTEUR", "Nom_fichier")])
colnames(tableau) <- c("Source", "Producteur", "Nom du fichier")

# knitr::kable(target[,c("INSEE_CODE","DESCRIPTION", "SOURCE", "PRODUCTEUR")], row.names = F, digits = 1) # Pour export html
ft <- flextable(tableau[2:nrow(tableau),])
ft <- set_caption(ft, caption = "Tableau 1 : Les bases de données utilisées")
ft <- width(ft, width = 1.7)
ft
Tableau 1 : Les bases de données utilisées

Source

Producteur

Nom du fichier

Table d'appartenance des communes (2011)

INSEE

table-appartenance-geo-communes-11.xls

Base Emploi - population active en 2009

INSEE

base-cc-emploi-pop-active-2009.xls

Base Évolution et structure de la population en 2009

INSEE

base-cc-evol-struct-pop-2009.xls

Base Mobilités professionnelles en 2009

INSEE

BTX_FM_DTR_2009.xls

Potentiel financier

DGCL

Potentiel_financier_2011.xls

Données comptables et fiscales des collectivités locales

DGCL

city_all.csv

L'impôt sur le revenu par collectivité territoriale

Ministère de l'économie

Ircom_2011_revenus2010.xls

Geofla®Communes édition 2011 (France Métropolitaine)

IGN

DGCL (Adrien Meo)

DGCL

CIF pour DGF 2012 et 2015.xls

2.3 - Données concernant les fusions communales et les communes nouvelles

La table de passage communale produite par l’INSEE restitue l’ensemble des changements qui ont affecté des communes en France depuis 2003. Cette table ne concerne pas exclusivement les communes nouvelles.

Pour cette raison, nous avons associé à ce fichier d’origine d’autres tables mises à disposition par l’INSEE : la liste des communes nouvelles (un fichier par année depuis 2016). Ces dernières comportent, pour chaque commune ayant participé à une fusion, les informations avant et après ce changement, ainsi que la date de décision et d’effet8. Pour retracer les créations de communes nouvelles antérieures au 2 janvier 2015, un fichier a été créé à partir de l’interface d’historique des communes de l’INSEE.

Le tableau suivant présente le récapitulatif des informations mises à disposition par l’INSEE :

tab_passage <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "tab_passage"))
tableau <- tab_passage[, c("INSEE_CODE", "DESCRIPTION", "SOURCE", "PRODUCTEUR")]
colnames(tableau) <- c("Nom de la variable", "Description", "Source", "Producteur")

# knitr::kable(tab_passage, row.names = F) # Pour export html
ft <- flextable(tableau)
ft <- set_caption(ft, caption = "Tableau 2 : Les données à disposition concernant les fusions")
ft <- width(ft, width = 1.7)
ft
Tableau 2 : Les données à disposition concernant les fusions

Nom de la variable

Description

Source

Producteur

annee_modif

Année de modification

Table d'appartenance géographique des communes et tables de passage

INSEE

COM_FIN

Code INSEE de la commune finale

Table d'appartenance géographique des communes et tables de passage

INSEE

COM_INI

Code INSEE Commune initiale

Table d'appartenance géographique des communes et tables de passage

INSEE

LIB_COM_FIN

Libellé de la commune finale

Table d'appartenance géographique des communes et tables de passage

INSEE

LIB_COM_INI

Libellé de la commune initiale

Table d'appartenance géographique des communes et tables de passage

INSEE

DepComN

Code Insee de la commune nouvelle

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

NomCN

Nom de la commune nouvelle

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

DepComA

Code Insee de l'ancienne commune

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

NomCA

Nom de l'ancienne commune

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

ChefLieu

Statut de commune chef-lieu (O=OUI, N=NON)

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

ComDLG

Statut de Commune déléguée (O=OUI, N=NON)

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

Date1

Date de l’arrêté préfectoral (JJ/MM/AAAA)

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

Date1bis

Date de l’arrêté préfectoral modificatif (JJ/MM/AAAA)

Fichier des communes nouvelles créées en 20xx (à partir de 2018)

INSEE (fichiers consolidés à partir de 2015)

Date2

Date d'effet (si différente du 1er janvier de l'année suivante)

Fichier des communes nouvelles créées en 20xx

INSEE (fichiers consolidés à partir de 2015)

Date3

Date de publication au JO (renseignée si la parution au JO a eu lieu à la date de mise en ligne)

Fichier des communes nouvelles créées en 20xx (jusqu'en 2021)

INSEE (fichiers consolidés à partir de 2015)

rm(tableau, ft, tab_passage)

3 - Méthodes d’agrégation des données dans le cas des communes nouvelles

Cette section détaille les étapes réalisées pour importer, préparer et agréger les données relatives à l’analyse du phénomène des communes nouvelles.

3.1 - Préparation des géométries de référence

La construction des géométries de référence repose sur le fichier géographique Geofla®Communes édition 2011 France Métropolitaine (objet geom2011). Ce choix limite la base aux communes dites métropolitaines, choix effectué car le phénomène des communes nouvelles n’a jusqu’à présent pas touché les communes ultra-marines. Les communes de Corse ont été également supprimées, étant donné (1) qu’elles ne sont pas concernées par le processus de création de communes nouvelles et (2) que cela permet d’améliorer la résolution et simplicité des représentations cartographiques.

Les arrondissements marseillais, lyonnais et parisiens ont été agrégés au niveau communal pour un meilleur appariement avec les données statistiques de référence utilisées ultérieurement. Ce fond communal a également été agrégé au niveau départemental à des fins de représentation cartographique (dep).

Le code communal (CODGEO) servant de référence pour les jointures ultérieures avec les données attributaires a été extrait de ces géométries.

# Géométries des communes françaises au 1er janvier 2011 (source : IGN)
geom2011 <- st_read(dsn = "data-raw/geom/COMMUNE.SHP")
## Reading layer `COMMUNE' from data source 
##   `/data/user/b/gbideau/Projet_CN_Serveur/data-raw/geom/COMMUNE.SHP' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 36610 features and 18 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: 99226 ymin: 6049647 xmax: 1242375 ymax: 7110524
## Projected CRS: RGF93 v1 / Lambert-93
geom2011 <- geom2011[geom2011$CODE_REG != "94",] # Suppression de la Corse
geom2011 <- st_transform(geom2011, crs = 3035) # Transformation Lambert-93


# Suppression et regroupement des arrondissements de Paris, Lyon et Marseille
arrcom <- read_excel("data-raw/geom/com_arm.xlsx") # Import de la table de passage des arrondissements
com <- merge(geom2011, arrcom, by = "INSEE_COM", all.y = TRUE) # Géométries des arrondissements
com <- aggregate(x = com[,"CODGEO"], by = list(com$CODGEO), # On les aggrège
                   FUN = head, 1)

com$NOM_COMM <- c("MARSEILLE", "LYON", "PARIS")
com$CODE_DEPT <- c("13","69","75")

geom2011 <- geom2011[!geom2011$INSEE_COM %in% arrcom$INSEE_COM, ] # Suppression des arrondissements

colnames(geom2011)[3] <- "CODGEO"
geom2011 <- rbind(geom2011[,c("CODGEO","NOM_COMM", "CODE_DEPT")],
                  com[,c("CODGEO","NOM_COMM", "CODE_DEPT")])


# Agrégation en départements
dep <-  aggregate(x = geom2011[,"CODE_DEPT"], by = list(geom2011$CODE_DEPT), # Agrégation des communes en départements
                   FUN = head, 1)

# Création d'un data frame avec les CODGEO de référence
df <- st_set_geometry(geom2011[,c("CODGEO", "CODE_DEPT")], NULL)

# Forcer character
df$CODGEO <- as.character(df$CODGEO)
df$CODE_DEPT <- as.character(df$CODE_DEPT)
# download.file("https://www.insee.fr/fr/statistiques/fichier/6051727/departement_2022.csv", "data-raw/stats_insee/departement_2022.csv")

departements <- read.csv("data-raw/stats_insee/departement_2022.csv", sep = ",", stringsAsFactors = FALSE, fileEncoding = "UTF8")

dep <- merge(dep, departements[, c("DEP", "LIBELLE")], all.x = TRUE, all.y = FALSE, by.x = "CODE_DEPT", by.y = "DEP")

rm(departements)

3.2 - Données statistiques caractérisant les communes françaises

Les différentes données, contenues dans les sources présentées plus haut (Tableau 1) et permettant d’obtenir les indicateurs choisis (Tableau annexe 1) ont été importées9. La jointure a été réalisée à l’aide des codes communaux 2011, l’ensemble constituant alors l’objet df2011.

# Importer les tableaux de données d'intérêt
datatmp1 <- data.frame(read_excel("data-raw/stats_insee/base-cc-emploi-pop-active-2009.xls", sheet = "COM_2009", skip = 5))
datatmp2 <- data.frame(read_excel("data-raw/stats_insee/base-cc-evol-struct-pop-2009.xls", sheet = "COM_2009", skip = 5))
datatmp3 <- data.frame(read_excel("data-raw/stats_insee/BTX_FM_DTR_2009.xls", sheet = "TOTAL", skip = 5))
datatmp4 <- data.frame(read_excel("data-raw/stats_insee/Potentiel_financier_2011.xls", sheet = "Rapport1", skip = 2))
datatmp5 <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-11.xls", sheet = "Liste_COM", skip = 5))
datatmp6 <- read.csv("data-raw/stats_insee/city_all.csv", sep = ",", stringsAsFactors = FALSE, fileEncoding = "UTF8")
datatmp6 <- subset(datatmp6, datatmp6$année == "2011")

# Nécessité d'une procédure un peu plus longue pour les données concernant les revenus
# À noter que des messages d'alertes s'affichent mais sans gravité

sheet_names <- excel_sheets("data-raw/stats_insee/Ircom_2011_revenus2010.xls") # On liste les feuilles
datatmp7 <- data.frame()
for (i in 1:length(sheet_names)){
  feuille <- sheet_names[i] # récupère le nom de la feuille
  IRFeuille <- data.frame(read_excel("data-raw/stats_insee/Ircom_2011_revenus2010.xls", sheet = feuille, skip = 20))
  datatmp7 <- rbind(datatmp7, IRFeuille, stringsAsFactors = FALSE)
  rm(feuille, IRFeuille) # suppression des objet intermédiaires
}
# Renommer variables
colnames(datatmp7)[10] <- "Traitements.et.salaires_Nbr.foyers"
colnames(datatmp7)[11] <- "Traitements.et.salaires_Montant"
colnames(datatmp7)[12] <- "Retraites.et.pensions_Nbr.foyers"
colnames(datatmp7)[13] <- "Retraites.et.pensions_Montant"
datatmp7 <- subset(datatmp7, datatmp7$Revenu.fiscal.de.référence.par.tranche..en.euros. == "Total") # Sélection des seules variables totales
datatmp7[, c(5:length(datatmp7))]<- lapply(datatmp7[, c(5:length(datatmp7))], as.numeric) # Variables en numériques
# Création d'un CODGEO
datatmp7$CODGEO <- substr(datatmp7$DÉP, 1, 2)
datatmp7$CODGEO <- paste(datatmp7$CODGEO, datatmp7$Commune, sep = "")


superficie <- geom2011
superficie$superficie <- st_area(superficie) # Attention, unités : m²
superficie$superficie <- set_units(superficie$superficie, km^2) # On passe en km²
st_geometry(superficie) <- NULL

# Le Coefficient d'Intégration Fiscale (CIF), va être compris comme étant du texte lors de l'agrégation des géométries, puisqu'il s'agit d'un ratio dont on n'a pas le dénominateur
CIF_2012 <- read_excel("data-raw/budgets/CIF pour DGF 2012 et 2015.xls", 
    sheet = "CIF pour DGF 2012")
colnames(CIF_2012)
## [1] "N° Siren Goupement"                  "Nom groupement"                     
## [3] "CIF Coefficient Integration Fiscale"
colnames(CIF_2012) <- c("EPCI_2012", "Nom_EPCI_2012", "CIF_2012")

CIF_2015 <- read_excel("data-raw/budgets/CIF pour DGF 2012 et 2015.xls", 
    sheet = "CIF pour DGF 2015")
colnames(CIF_2015)
## [1] "N° Siren Goupement"                  "Nom groupement"                     
## [3] "CIF Coefficient Integration Fiscale"
colnames(CIF_2015) <- c("EPCI_2015", "Nom_EPCI_2015", "CIF_2015")


# Jointure avec le champ CODGEO 2011 de référence (issu des géométries)
df <- merge(df, datatmp1, by = "CODGEO", all.x  = TRUE)
df <- merge(df, datatmp2[,c(1, 5:length(datatmp2))], by = "CODGEO", all.x  = TRUE)
df <- merge(df, datatmp3[,c(1, 3:length(datatmp3))], by = "CODGEO", all.x  = TRUE)
df <- merge(df, datatmp4, by.x = "CODGEO", by.y = "Code.INSEE", all.x  = TRUE)
df <- merge(df, datatmp5[,c(1, 5:length(datatmp5))], by = "CODGEO", all.x  = TRUE)
df <- merge(df, datatmp6[,c(5, 12)], by.x = "CODGEO", by.y = "cog..code.officiel.géographique.", all.x = TRUE)
df <- merge(df, datatmp7[,c(5:length(datatmp7))], by = "CODGEO", all.x = TRUE)
df <- merge(df, superficie[,c("CODGEO", "superficie")], by = "CODGEO")
df <- merge(df, CIF_2012, by.x = "EPCI", by.y = "EPCI_2012", all.x = TRUE)
df <- merge(df, CIF_2015, by.x = "EPCI", by.y = "EPCI_2015", all.x = TRUE)

# Ne conserver que les indicateurs d'intérêt
selec <- target$INSEE_CODE
df2011 <- df[,selec]

# Renommer le code des variables
colnames(df2011) <- target$recoding

Les catégories du Zonage en Aires Urbaines (ZAU) ont également été regroupées, pour faciliter les analyses de cette typologie. Outre les catégories proposées par l’INSEE (comme l’espace périurbain regroupant les communes codées 112 et 120), des catégories ont été rajoutées comme les communes constituant les petits pôles (codes ZAU 221 et 222).

# Pour créer des catégories plus vastes à partir des 
# Utilisation du ZAU pour cibler les communes appartenant à un petit pôle (unité urbaine et couronne)

# Utilisation du ZAU pour cibler les communes constituant les petits pôles
df2011$ZAU_POL [df2011$CATAEU2010 %in% c("221", "222")] <- "OUI"

# Utilisation du ZAU pour cibler les communes du rural profond
df2011$ZAU_RUR [df2011$CATAEU2010 %in% c("300", "400")] <- "OUI"

# Utilisation du ZAU pour cibler les communes du rural profond + couronnes petits pôles : Marges Sans Pôles
df2011$ZAU_MAR_SP [df2011$CATAEU2010 %in% c("222", "300", "400")] <- "OUI"

# Utilisation du ZAU pour cibler les communes du rural profond + petits pôles et couronnes
df2011$ZAU_MAR [df2011$CATAEU2010 %in% c("221", "222", "300", "400")] <- "OUI"

# Utilisation du ZAU pour cibler les communes périurbaines et les autres
df2011$ZAU_PERI [df2011$CATAEU2010 %in% c("112", "120")] <- "OUI"

# Utilisation du ZAU pour cibler les communes des Grandes aires urbaines, des aires urbaines et les autres
df2011$ZAU_AU [df2011$CATAEU2010 %in% c("111", "112", "120")] <- "GrdAirUrb"
df2011$ZAU_AU [df2011$CATAEU2010 %in% c("211", "212", "221", "222")] <- "AirUrb"
df2011$ZAU_AU [df2011$CATAEU2010 %in% c("300", "400")] <- "Autres"

# Tout ce qui ne fait pas partie des catégories = NON 
selecV <- c("ZAU_POL", "ZAU_RUR", "ZAU_MAR_SP", "ZAU_MAR", "ZAU_PERI", "ZAU_AU")
df2011[selecV][is.na(df2011[selecV])] <- "NON"

# # Si on souhaite, transformation en facteur des catégories des aires urbaines
# df2011$CATAEU2010 <- as.factor(df2011$CATAEU2010)
# df2011$CODGEO <- as.character(df2011$CODGEO)

3.3 - Gestion des fusions communales et identification des communes nouvelles

Afin de créer les informations chronologiques sur les fusions communales, la table de passage communale a constitué la source primaire, présentant l’ensemble des mutations qui ont touché des communes en France depuis 2003. Ont également été utilisées les tables mises à disposition par l’INSEE (un fichier par année depuis 2016).

Cette démarche permettra de compléter aisément le fichier à l’avenir, pour tenir compte d’éventuelles nouvelles fusions. Il suffira de rajouter les fichiers les plus récents (dans le dossier data-raw comme dans le code) :

  • La nouvelle table concernant les fusions de l’année écoulée (2024 par exemple, donc situation au 1er janvier 2025) ;

  • La table de passage (s’appelant probablement 2003-2024) ;

  • La table d’appartenance (s’appelant probablement 2024)10.

# Import de la liste des fusions (cf. plus bas pour l'utilisation)

# comFus <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2020.xlsx", sheet = "Liste des fusions", skip = 5))
# comFus <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2021.xlsx", sheet = "Liste des fusions", skip = 5))
# comFus <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2022.xlsx", sheet = "Liste des fusions", skip = 5))
# comFus <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2023.xlsx", sheet = "Liste des fusions", skip = 5))
comFus <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2024.xlsx", sheet = "Liste des fusions", skip = 5))


# Import de la liste des scissions (cf. plus bas pour l'utilisation)

# comSci <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2020.xlsx", sheet = "Liste des scissions", skip = 5))
# comSci <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2021.xlsx", sheet = "Liste des scissions", skip = 5))
# comSci <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2022.xlsx", sheet = "Liste des scissions", skip = 5))
# comSci <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2023.xlsx", sheet = "Liste des scissions", skip = 5))
comSci <- data.frame(read_excel("data-raw/communes_nouvelles/table_passage_geo2003_geo2024.xlsx", sheet = "Liste des scissions", skip = 5))

# Import de la table de passage (cf. plus bas pour l'utilisation)

# modif <- as.data.frame(read_xlsx("data-raw/communes_nouvelles/table_passage_geo2003_geo2020.xlsx", col_types = "text", sheet = "Table de passage", skip = 5))
# modif <- as.data.frame(read_xlsx("data-raw/communes_nouvelles/table_passage_geo2003_geo2021.xlsx", col_types = "text", sheet = "Table de passage", skip = 5))
# modif <- as.data.frame(read_xlsx("data-raw/communes_nouvelles/table_passage_geo2003_geo2022.xlsx", col_types = "text", sheet = "Table de passage", skip = 5))
# modif <- as.data.frame(read_xlsx("data-raw/communes_nouvelles/table_passage_geo2003_geo2023.xlsx", col_types = "text", sheet = "Table de passage", skip = 5))
modif <- as.data.frame(read_xlsx("data-raw/communes_nouvelles/table_passage_geo2003_geo2024.xlsx", col_types = "text", sheet = "Table de passage", skip = 5))
colnames(modif) <- c("CODGEO_INI", "CODGEO_new", "LIBGEO_new" )

# NB : La manière de présenter les communes ayant connu une scission est différente à partir de la table 2003-2024
# Par exemple la commune de Ouézy est présente deux fois dans la table 2003-2024 avec comme CODE_INI et CODGEO_INI et CODGEO_2024 respectivement de 14149 et 14482 pour une ligne, 14149 et 14149 pour l'autre.
# Alors que dans la table 2003-2024, il n'y avait que la ligne 14482-14482.
# La raison de ce changement m'échappe mais on procède à quelques manipulations pour retirer la ligne où les deux codes diffèrent, et ce pour l'ensemble des communes ayant connu une scission.

pr_suppr_doublons <- subset (comSci, comSci$COM_INI != comSci$COM_FIN)
# Création d'un champ concaténant les deux CODGEO en question
pr_suppr_doublons$conc <- paste(pr_suppr_doublons$COM_INI, "-", pr_suppr_doublons$COM_FIN)
modif$conc <- paste(modif$CODGEO_INI, "-", modif$CODGEO_new)
modif <- subset(modif, !(modif$conc %in% pr_suppr_doublons$conc))
modif <- modif[,-4]

rm(pr_suppr_doublons)


# Import de la table d'appartenance de l'année la plus récente (cf. plus bas pour l'utilisation)
# df_new <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-20_zonages20_v2022-09-27.xlsx",  sheet = "COM", skip = 5))
# df_new <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-21_v2022-09-27.xlsx",  sheet = "COM", skip = 5))
# df_new <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-22.xlsx",  sheet = "COM", skip = 5))
# df_new <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-23.xlsx",  sheet = "COM", skip = 5))
df_new <- data.frame(read_excel("data-raw/stats_insee/table-appartenance-geo-communes-24.xlsx",  sheet = "COM", skip = 5))

3.3.1 - Identification des communes fusionnantes

Nous avons commencé par identifier les communes ayant pris part à une fusion en utilisant la table de passage globale fournie par l’INSEE depuis la géométrie de 2003. Cette table comprend comporte une page dédiée à toutes les fusions depuis cette date. Elle comprend donc aussi des fusions de communes qui n’ont pas créé de communes nouvelles, puisque ce statut n’apparaît qu’en 2010 et n’est utilisé pour la première fois qu’en 2012. C’est le sens de la distinction entre le champ FUSION qui a été créé d’abord (désignant n’importe quelle fusion de commune) et le champ COM_NOUV, créé dans un second temps, qui concerne bien les seules communes participant à la création de communes nouvelles.

# Pour rappel, comFus est la feuille "Liste des fusions", disponible dans le fichier "table_passage_geo2003-geoxxxx". Elle a été importée plus haut

# Pour éviter les doublons dans la table INSEE
comFus <- aggregate(x = comFus, by = list(comFus$COM_INI), 
                   FUN = head, 1) # On garde le premier élément (car df trié par date)

# Renommer avec la commune fusionnée la plus récente
comFus <- comFus[order(comFus$ANNEE_MODIF, decreasing = TRUE),] # Pour année 2022, ANNEE_MODIF en minuscule(annee_modif)
comFus$LIB_COM_FIN <- ave(comFus$LIB_COM_FIN, comFus$COM_FIN, FUN = function(x) x[1])
comFus <- comFus[,c(2:length(comFus))]

# Identification des communes fusionnantes dans la table d'entrée
df2011 <- merge(df2011, comFus[,c("COM_INI", "ANNEE_MODIF")], by.x = "CODGEO",
                by.y = "COM_INI", all.x = TRUE)
df2011$ANNEE_MODIF[!is.na(df2011$ANNEE_MODIF)] <- "OUI"
df2011$ANNEE_MODIF[is.na(df2011$ANNEE_MODIF)] <- "NON"
colnames(df2011)[length(df2011)] <- "FUSION"

3.3.2 - Identification et caractérisation des communes nouvelles

Les informations contenues dans les tables de passage par années (celles fournies année par année depuis 2016 par l’INSEE et celle créée manuellement pour les fusions ayant eu lieu entre 2012 et le 1er janvier 2015) ont été ajoutées : elles décrivent des communes créées après l’élaboration du statut de commune nouvelle (par la loi du 16 décembre 2010 intitulée « Loi de réforme des collectivités territoriales », cf. plus haut) et sont davantage détaillées concernant ces fusions (création ou non de communes déléguées et date de création sont par exemple renseignées)11.

Certains cas particuliers ont demandé un traitement spécifique :

  • Bettoncourt-le-Haut a fusionné en 1972 avec Épizon, sous le statut de commune-associée. Au 1er janvier 2013, avec la création de la commune-nouvelle d’Épizon, la commune de Bettoncourt-le-Haut est devenue commune déléguée. Comme on ne disposait pas des données 2011 pour Bettoncourt-le-Haut, on a préféré ignorer cette dernière en considérant que la commune nouvelle d’Épizon est le résultat de la fusion des seules Épizon et Pautaines-Augeville (source : fiche spécifique de l’INSEE).

  • Il a été également nécessaire de traiter individuellement le cas de la commune de L’Oudon, qui a changé de code communal à plusieurs reprises : issue de la fusion-association de dix communes en 1973, elle avait jusqu’en 1990 le code 14472. Du fait d’un transfert de chef-lieu, le code a été modifié en 14697. Après un nouveau transfert de chef-lieu en 2014, l’INSEE a décidé en 2016 de ré-attribuer le code de 14472. Cette commune a ensuite fusionné au 1er janvier 2017 au sein de la commune nouvelle de Saint-Pierre-en-Auge. Pour éviter les problèmes d’association entre les données, nous avons laissé l’ancien code 14697, qui est celui utilisé dans les données INSEE que nous avons utilisées (millésime 2011). Cf. ici pour plus de détails.

Pour faciliter la lecture des dynamiques, et sans empêcher néanmoins l’étude par date précise (en fonction des années, cf. graphique 1 dans la section 4, voire mois et jour), nous avons distingué plusieurs vagues de fusions en fonction de leur intensité12 13 :

  • une première phase, peu intense, concernant 73 communes (se regroupant en 26 communes nouvelles), entre le 1er janvier 2011 et le 1er janvier 2015 inclus ;

  • ensuite, le nombre plus important de fusions a conduit à isoler chaque année 2015, 2016, 2017 et 2018 dans quatre phases distinctes ;

  • enfin, la période des années 2019, 2020, 2021, 2022 et 2023 (jusqu’au 1er janvier 2024), moins intense en terme de fusions, a été regroupée dans une seule phase.

Cette périodisation pourra être modifiée en fonction d’évolutions les prochaines années (la poursuite des fusions est probable) ou d’autres choix chronologiques.

# Import tables de référence INSEE
tmp <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2012_2014.xls", sheet = "Communes_nouvelles_2012_2014"))
# Traitement du cas particulier de Bettoncourt-le-Haut et Épizon
tmp <- subset (tmp, DepComA != "52046")

tmp1 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2015.xls", sheet = "Communes nouvelles 2015"))
tmp1$Date2[is.na(tmp1$Date2)] <- "01/01/2016"

tmp2 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2016.xls", sheet = "Communes nouvelles 2016"))
tmp2$Date2[is.na(tmp2$Date2)] <- "01/01/2017"

# Traitement du cas particulier de la commune de L'Oudon
# tmp2$DepComA[tmp2$NomCA == "Oudon (L')"] <- "14697"
tmp2$DepComA[tmp2$DepComA == "14472"] <- "14697"

tmp3 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2017.xls", sheet = "Communes nouvelles 2017"))
tmp3$Date2[is.na(tmp3$Date2)] <- "01/01/2018"

tmp4 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2018.xls", sheet = "Communes_nouvelles_2018"))
tmp4$Date2[is.na(tmp4$Date2)] <- "01/01/2019"

tmp5 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2019.xls", sheet = "Communes_nouvelles_2019"))

tmp6 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2020.xlsx", sheet = "Communes_nouvelles_2020"))
# Pour mettre les dates au même format que les fichiers précédents
tmp6$Date1 <- format(as.Date(tmp6$Date1, format = "%Y-%m-%d"),"%d/%m/%Y") 
tmp6$Date2 <- format(as.Date(tmp6$Date2, format = "%Y-%m-%d"),"%d/%m/%Y")

tmp7 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2021.xlsx", sheet = "Communes_nouvelles_2021"))
# Pour mettre les dates au même format que les fichiers précédents
tmp7$Date1 <- format(as.Date(tmp7$Date1, format = "%Y-%m-%d"),"%d/%m/%Y")
tmp7$Date2 <- format(as.Date(tmp7$Date2, format = "%Y-%m-%d"),"%d/%m/%Y")
# On rajoute la colonne Date3 pour faciliter le regroupement des tableaux ensuite.
# Ce champ, correspondant à la date de publication de l'arrêté au JO, n'est pas utilisé dans la suite de l'analyse. Il n'est plus renseigné à partir du fichier des fusions ayant eu lieu jusqu'au 1er janvier 2022
tmp7$Date3 <- NA

tmp8 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2022.xlsx", sheet = "Communes_nouvelles_2022"))
# Pour mettre les dates au même format que les fichiers précédents
tmp8$Date1 <- format(as.Date(tmp8$Date1, format = "%Y-%m-%d"),"%d/%m/%Y")
tmp8$Date2 <- format(as.Date(tmp8$Date2, format = "%Y-%m-%d"),"%d/%m/%Y")
# On rajoute la colonne Date3 pour faciliter le regroupement des tableaux ensuite.
tmp8$Date3 <- NA

tmp9 <- data.frame(read_excel("data-raw/communes_nouvelles/communes_nouvelles_2023.xlsx", sheet = "Communes_nouvelles_2023"))
# Pour mettre les dates au même format que les fichiers précédents
tmp9$Date1 <- format(as.Date(tmp9$Date1, format = "%Y-%m-%d"),"%d/%m/%Y")
tmp9$Date2 <- format(as.Date(tmp9$Date2, format = "%Y-%m-%d"),"%d/%m/%Y")
# On rajoute la colonne Date3 pour faciliter le regroupement des tableaux ensuite.
tmp9$Date3 <- NA



# Regroupement des colonnes identiques des différents dataframe
comNew <- data.frame()
list_df <- list(tmp, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9)

for(item in list_df){     
  items <- item[, names(tmp)] # La référence sont les noms de colonne du premier fichier
  comNew <- rbind(comNew, items)    

}

# Supprimer lignes qui ne concernent que des commentaires dans la feuille excel importée
comNew <- subset(comNew, comNew$DepComN != "NA")
# test <- dplyr::anti_join(comNew, comNew2) # Si on souhaite identifier ces erreurs

# Reformatage de l'année de fusion
comNew$FusDate <- as.Date(comNew$Date2, tryFormats = "%d/%m/%Y")

# Découpage en phases temporelles de fusion
comNew$FusPhas <- cut(comNew$FusDate, 
                        breaks = as.Date(c("2011-1-1", "2015-1-2", "2016-1-2",
                                           "2017-1-2","2018-1-2", "2019-1-2","2024-1-2")), 
                        labels = c("Phase 1", "Phase 2", "Phase 3", "Phase 4", "Phase 5", "Phase 6"))

# Pour fusions successives et à code DepComA identique, ne conserver que l'élément le plus ancien
comNew <- aggregate(x = comNew, by = list(comNew$DepComA),  # on évite les doublons
                   FUN = head, 1) # On ne garde que le premier élément (comNew trié par ordre chronologique)

# Prise en compte du dernier nom de commune nouvelle
comNew <- comNew[order(comNew$FusDate, decreasing = TRUE),]
comNew$NomCN <- ave(comNew$NomCN, comNew$DepComN, FUN = function(x) x[1])
comNew <- comNew[,c(2:length(comNew))] # Ne garder que les colonnes utiles

# Jointure avec le fichier d'origine
df2011 <- merge(df2011, comNew[,c("DepComA","ChefLieu","ComDLG", "FusDate","FusPhas")],
                by.x = "CODGEO", by.y = "DepComA", all.x = TRUE, all.y = TRUE)

# Identification communes nouvelles
df2011$COM_NOUV[!is.na(df2011$FusPhas)] <- "OUI"
df2011$COM_NOUV[is.na(df2011$FusPhas)] <- "NON"
df2011$FusPhas <- as.character(df2011$FusPhas)


# Pour comparer les données issues de la table générale et celles compilées à partir des tables années par années, on peut créer l'objet suivant :
DiffcomFuscomNew <- dplyr::anti_join(comFus, comNew, by = c("COM_INI" = "DepComA")) 

# Les principales différences sont bien liées à la période plus large de la table générale (prend en compte les fusions avant 2011, qui ne sont pas des communes nouvelles)


# Pour observer s'il y a des doubles fusions, les doublons et les fusions successives entre deux dates :
DoublesFusions <- merge(tmp, tmp1, by.x = "DepComN", by.y = "DepComA")
# En fonction de l'ensemble des dates sauf la dernière
PrFusions <- comNew[comNew$FusDate <= "2022-01-01",]
DoublesFusions <- merge(PrFusions, tmp9, by.x = "DepComN", by.y = "DepComA")

rm(item, items, list_df, PrFusions,DoublesFusions)

3.3.3 - Gestion des scissions communales

Dans la table de passage, des scissions communales sont mentionnées. Une étape supplémentaire a permis que ces dernières ne soient pas considérées comme des fusions ou des communes nouvelles.

Il faut, là encore, noter un cas particulier : en 2012, la commune de Robert-Magny-Laneuville-à-Rémy (52427) se scinde en Robert-Magny (52427) et Laneuville-à-Rémy (52266). Au 1er janvier 2016, Robert-Magny fusionne avec Montier-en-Der (52331) pour former La Porte du Der (52331). Comme on ne disposait pas des données de recensement en 2011 pour Laneuville-à-Rémy, on a préféré ignorer cette scission et cette dernière commune n’apparaît donc pas dans notre base de données (source : fiche spécifique de l’INSEE).

# Objectif : que tout ce qui est scission ne soit pas considéré comme commune nouvelle ou fusion
# Pour rappel, comSci est la feuille "Liste des scissions", disponible dans le fichier "table_passage_geo2003-geoxxxx". Elle a été importée plus haut

# Cas particulier de la commune de Robert-Magny-Laneuville-à-Rémy (52427).
comSci <- subset(comSci, COM_INI != "52427")
code_comSci <- as.vector(unique(comSci$COM_FIN))

df2011$FUSION [df2011$CODGEO %in% code_comSci] <- "NON"
df2011$COM_NOUV [df2011$CODGEO %in% code_comSci] <- "NON"
df2011$ChefLieu [df2011$CODGEO %in% code_comSci] <- NA
df2011$ComDLG [df2011$CODGEO %in% code_comSci] <- NA
df2011$FusDate [df2011$CODGEO %in% code_comSci] <- NA
df2011$FusPhas [df2011$CODGEO %in% code_comSci] <- NA

df2011$FusDate <- as.character(df2011$FusDate)

test <- subset (df2011, df2011$CODGEO == "14149")
test <- subset (df2011, df2011$LIBGEO == "Ouézy")


# df2011_sauvegarde <- df2011

3.4 - Agrégation des indicateurs et calcul des ratios

Une étape majeure a ensuite été l’agrégation des indicateurs, pour les communes ayant fusionné. Cette agrégation, souvent simple pour les variables de stock (additions des données des communes fusionnantes), a présenté davantage de difficultés pour le traitement des ratios. Pour ce faire, une fonction spécifique, comix, a été créée. Elle permet d’agréger les données selon leurs natures. Les données textuelles, si elles ne sont pas identiques, sont concaténées, les variables de stock sont additionnées, les variables de ratio (qui pourraient, pour certaines, également être recalculées à partir des variables de stock) sont pondérées en fonction du dénominateur adapté (indiqué dans les métadonnées), pouvant être la population, le nombre d’actifs, le nombre de foyers etc.

Nous avons importé, au préalable, les zonages de référence pour l’année la plus récente, ce qui permet d’avoir les informations les plus à jour possible (cas de quelques communes ayant changé de département avec les fusions). Ce sont ces zonages qui constituent le matériau de base de l’objet df_new.

# Pour rappel, df_new est la table d'appartenance à l'année la plus récente. Elle a été importée plus haut.
df_new <- df_new[,c("CODGEO","LIBGEO","DEP","REG")] # NB : certains éléments ne sont plus dans les données à partir du 1er janvier 2021 : "CATAEU2010","AU2010", "EPCI"... Ont donc été supprimées. Il faudra songer à intégrer le nouveau zonage lorsqu'il sera disponible. Ci-dessous, commenté, le code qui servait à l'intégration des données jusqu'en 2020

# df_new <- df_new[,c("CODGEO","LIBGEO","DEP","REG","CATAEU2010","AU2010","EPCI")]
# colnames(df_new)[1:3] <- c("CODGEO_new","LIBGEO_new","CODE_DEPT") 
# # Création catégories
# df_new$ZAU_POL [df_new$CATAEU2010 %in% c("221", "222")] <- "OUI"
# df_new$ZAU_RUR [df_new$CATAEU2010 %in% c("300", "400")] <- "OUI"
# df_new$ZAU_MAR_SP [df_new$CATAEU2010 %in% c("222", "300", "400")] <- "OUI"
# df_new$ZAU_MAR [df_new$CATAEU2010 %in% c("221", "222", "300", "400")] <- "OUI"
# df_new$ZAU_PERI [df_new$CATAEU2010 %in% c("112", "120")] <- "OUI"
# df_new$ZAU_AU [df_new$CATAEU2010 %in% c("111", "112", "120")] <- "GrdAirUrb"
# df_new$ZAU_AU [df_new$CATAEU2010 %in% c("211", "212", "221", "222")] <- "AirUrb"
# df_new$ZAU_AU [df_new$CATAEU2010 %in% c("300", "400")] <- "Autres"
# # Tout ce qui ne fait pas partie des catégories = NON 
# selecV <- c("ZAU_POL", "ZAU_RUR", "ZAU_MAR_SP", "ZAU_MAR", "ZAU_PERI", "ZAU_AU")
# df_new[selecV][is.na(df_new[selecV])] <- "NON"


colnames(df_new) <- c("CODGEO_new","LIBGEO_new","CODE_DEPT_new", "REG_new") 

# df_new_sauvegarde <- df_new
# Nous utilisons ici la fonction `comix` pour agréger les données d'intérêt en fonction de la géographie la plus récente (ici, au 1^er^ janvier 2021). La table `df_new` ainsi créée nous permet donc, pour chaque variable choisie (stock et ratio), de disposer des données pour les entités à la géométrie la plus récente.


# Agrégation des données de 2011 vers l'année la plus récente (stock + texte)
# Import de la table de passage : "modif"
# Pour rappel, modif est la feuille "Table de passage", disponible dans le fichier "table_passage_geo2003-geoxxxx". Elle a été importée plus haut

# Agrégation
# Attention à bien indiquer la nature pour chaque variable visée 
tmp <- comix(x = df2011, xid = "CODGEO", app = modif,
                app.init = "CODGEO_INI", app.target = "CODGEO_new", 
                var = c(target$recoding, "FUSION", "FusDate", "FusPhas", "COM_NOUV"),
                var.type = c(target$type_variable, rep("text",4)))


# Gestion des "OUI-NON" > transformé en "OUI"
selec <- c("FUSION", "COM_NOUV")
tmp[,selec][tmp[,selec] == "OUI-NON"] <- "OUI"
tmp[,selec][tmp[,selec] == "NON-OUI"] <- "OUI"

# Jointure avec le fichier de référence le plus récent
df_new <- merge(df_new, tmp, by.x = "CODGEO_new", by.y = "CODGEO_new",
                all.x = TRUE)

# Suppression des territoires corses, des DOM et des communes associées (pas de geom)
depsuppr <- c("94","01","02","03","04","06")
df_new <- df_new[!df_new$REG %in% depsuppr,] 
df_new <- df_new[!is.na(df_new$CODGEO),]


# Jointure des codes géographiques récents pour df2011
df2011 <- merge(df2011, modif, by.x = "CODGEO", by.y = "CODGEO_INI", all.x = TRUE)

# Gestion des chefs-lieux dans les fusions successives
# Suppression des chefs lieux des communes ayant fusionné a posteriori
df2011$ChefLieu <- ifelse(df2011$CODGEO == df2011$CODGEO_new, "O", "N")

# Transformation en factor d'un champ
#df_new$CATAEU2010 <- as.factor(df_new$CATAEU2010) # Ne sont plus dans les données à partir de 2021
df2011$CATAEU2010 <- as.factor(df2011$CATAEU2010)

NB : La gestion des communes s’étant scindée est complexe et imparfaite.

Il s’agit, pour chacune des tables, d’une cinquantaine de communes. Il peut être pertinent de les retirer de certaines analyses.

Un exemple de cas particulier : la commune de Les Hauts Talican (CODGEO 60054), issue de la fusion de Beaumont-les-Nonains (60054), La Neuville Garnier (60455) et Villotran (60694) mais dont Beaumont-les-Nonains se détache au 1er janvier 2024.

duplicated2 <- function(x){ 
  if (sum(dup <- duplicated(x))==0) 
    return(dup) 
  if (class(x) %in% c("data.frame","matrix")) 
    duplicated(rbind(x[dup,],x))[-(1:sum(dup))] 
  else duplicated(c(x[dup],x))[-(1:sum(dup))] 
}

df2011$doublons <- duplicated2(df2011$CODGEO)
summary(df2011$doublons)
##    Mode   FALSE 
## logical   36208
doublons_df2011 <- subset(df2011, df2011$doublons == TRUE)
doublons_df2011
##  [1] CODGEO              LIBGEO              CODE_DEPT          
##  [4] CATAEU2010          REG                 ARR                
##  [7] CV                  UU2010              AU2010             
## [10] ZE2010              EPCI                P09_ACT1564        
## [13] P09_CHOM1564        P09_ETUD1564        P09_RETR1564       
## [16] C09_ACT1564_Agr     C09_ACT1564_ArtCom  C09_ACT1564_Cadr   
## [19] C09_ACT1564_ProfInt C09_ACT1564_Empl    C09_ACT1564_Ouvr   
## [22] P09_EMPLT           C09_EMPLT_AGRI      C09_EMPLT_INDUS    
## [25] C09_EMPLT_CONST     C09_EMPLT_CTS       C09_EMPLT_APESAS   
## [28] P09_ACTOCC          P09_POP             P09_POP0014        
## [31] P09_POP1529         P09_POP3044         P09_POP4559        
## [34] P09_POP6074         P09_POP75P          C09_ACTOCC_IN      
## [37] C09_ACTOCC_OUT      C09_ACTOCC          P11_POT_FIN        
## [40] P11_DGF             P11_FoyFisc         P11_Rev_Fisc       
## [43] P11_IMP_NET         P11_FoyFisc_Imp     superficie         
## [46] CIF_2012            CIF_2015            ZAU_POL            
## [49] ZAU_RUR             ZAU_MAR_SP          ZAU_MAR            
## [52] ZAU_PERI            ZAU_AU              FUSION             
## [55] ChefLieu            ComDLG              FusDate            
## [58] FusPhas             COM_NOUV            CODGEO_new         
## [61] LIBGEO_new          doublons           
## <0 lignes> (ou 'row.names' de longueur nulle)
df_new$doublons <- duplicated2(df_new$CODGEO)
summary(df_new$doublons)
##    Mode   FALSE 
## logical   34439
doublons_df_new <- subset(df_new, df_new$doublons == TRUE)
doublons_df_new
##  [1] CODGEO_new          LIBGEO_new          CODE_DEPT_new      
##  [4] REG_new             CODGEO              LIBGEO             
##  [7] CODE_DEPT           CATAEU2010          REG                
## [10] ARR                 CV                  UU2010             
## [13] AU2010              ZE2010              EPCI               
## [16] P09_ACT1564         P09_CHOM1564        P09_ETUD1564       
## [19] P09_RETR1564        C09_ACT1564_Agr     C09_ACT1564_ArtCom 
## [22] C09_ACT1564_Cadr    C09_ACT1564_ProfInt C09_ACT1564_Empl   
## [25] C09_ACT1564_Ouvr    P09_EMPLT           C09_EMPLT_AGRI     
## [28] C09_EMPLT_INDUS     C09_EMPLT_CONST     C09_EMPLT_CTS      
## [31] C09_EMPLT_APESAS    P09_ACTOCC          P09_POP            
## [34] P09_POP0014         P09_POP1529         P09_POP3044        
## [37] P09_POP4559         P09_POP6074         P09_POP75P         
## [40] C09_ACTOCC_IN       C09_ACTOCC_OUT      C09_ACTOCC         
## [43] P11_POT_FIN         P11_DGF             P11_FoyFisc        
## [46] P11_Rev_Fisc        P11_IMP_NET         P11_FoyFisc_Imp    
## [49] superficie          CIF_2012            CIF_2015           
## [52] FUSION              FusDate             FusPhas            
## [55] COM_NOUV            doublons           
## <0 lignes> (ou 'row.names' de longueur nulle)
df2011 <- df2011[,-ncol(df2011)]
df_new <- df_new[,-ncol(df_new)]

rm(doublons_df_new, doublons_df2011)
# On précise ici la date de la fusion du chef-lieu, qui est en général la date de la première fusion dans le cas de fusions successives
df_new <- merge(df_new, df2011[, c("CODGEO", "FusDate", "FusPhas")], by.x = "CODGEO_new", by.y = "CODGEO", all.x = TRUE, suffixes = c("", "_ChefLieu"))
# On intègre ici, pour toutes les communes nouvelles, le nombre de communes fusionnantes
compte_Cfus <- subset(df2011, df2011$COM_NOUV == "OUI")

compte_Cfus <- data.frame(table(compte_Cfus$CODGEO_new))
colnames(compte_Cfus) <- c("CODGEO_new", "NbrComFus")
df_new <- merge(df_new,compte_Cfus, by = "CODGEO_new", all.x = TRUE)

rm(compte_Cfus)
df_new$FusDate <- as.Date(df_new$FusDate, tryFormats = "%Y-%m-%d")

df_new$FusDateAnnee <- cut(df_new$FusDate,
                              breaks = as.Date(c("2011-1-1", "2012-1-2", "2013-1-2", "2014-1-2", "2015-1-2", "2016-1-2", "2017-1-2","2018-1-2", "2019-1-2", "2020-1-2", "2021-1-2", "2022-1-2", "2023-1-1", "2024-1-1")), 
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # NB : On intègre le 1er janvier d'une année n à l'année précédente n-1

df_new$FusDateAnnee_effectivite <- cut(df_new$FusDate,
                        breaks = as.Date(c("2011-1-1", "2012-1-1", "2013-1-1", "2014-1-1", "2015-1-1", "2016-1-1", "2017-1-1","2018-1-1", "2019-1-1", "2020-1-1", "2021-1-1", "2022-1-1", "2023-1-1", "2024-1-1")),
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # Si on utilise l'année (1er janvier laissé dans l'année concernée)
ratio_tt <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "ratios"))
# Comme pour les variables, seuls certains ratios sont sélectionnés
ratio <- subset(ratio_tt, variable_selec == "X")

# Compilation des ratios pour les communes 2011
for (i in 1:nrow(ratio)){
  df2011[paste0(ratio[i,"CODE"])] <- (df2011[[ratio[i, "Numerator_Code"]]] / 
    df2011[[ratio[i, "Denominator_Code"]]]) * ratio[i,"Coeff"]
}

# Compilation des ratios pour les communes à la dernière géométrie connue
for (i in 1:nrow(ratio)){
  df_new[paste0(ratio[i,"CODE"])] <- (df_new[[ratio[i, "Numerator_Code"]]] / 
    df_new[[ratio[i, "Denominator_Code"]]]) * ratio[i,"Coeff"]
}

3.5 - Résumé des fichiers créés

Deux jeux de données ont ainsi été produits :

  • Le premier, df2011, contient l’ensemble des données communales françaises désirées en fonction de la géographie administrative au 1er janvier 2011.

  • Le second, df_new, contient les informations en fonction de la géographie administrative du 1er janvier de la dernière année pour laquelle les données ont été publiées par l’INSEE. Les données 2011 ont été regroupées en fonction du fichier des fusions délivré par l’INSEE, à l’aide de la fonction comix créée plus haut. Le Tableau annexe 2 détaille les codes respectifs que ces fichiers contiennent, ainsi qu’un descriptif de leur contenu.

Les variables présentes dans df_new sont identifiées de la même manière que dans df2011. Les seules différences, par exemple concernant les identifiants des communes, sont pointées par le suffixe “_new” (ainsi le CODGEO_new désigne le code des communes à la nouvelle géométrie) ou supprimées quand le champ n’a pas de sens pour les communes fusionnantes 14.

Les jeux de données de référence sont finalement exportés dans le dossier data au format RData.

# Trois lignes ci-desssous pour créer le dossier nécessaire à l'accueil des données créées
# setwd(dirname(rstudioapi::getActiveDocumentContext()$path)) # On définit le dossier en cours comme répertoire de travail
# getwd() # Pour vérification
# dir.create("data") # création du dossier destiné à accueillir les données créées

try(save(df2011, df_new, file = "data/refdata.Rdata"))

3.6 - Agrégation des dernières géométries connues, extraction des communes nouvelles et export des résultats

Après le travail sur les données, ce sont les géométries qui ont été agrégées pour correspondre aux géométries les plus récentes (ici, 1er janvier 2024). Des objets ont ensuite été spécifiquement créés pour isoler et permettre de faciliter l’étude des communes fusionnantes (geomfus2011) et des communes nouvelles (geomCN_new).

# Communes françaises au 1er janvier 2011
geom2011 <- geom2011[,c("CODGEO")]

# Communes françaises à la géométrie la plus récente
geom_new <- merge(geom2011, df2011[,c("CODGEO","CODGEO_new")])
geom_new <- aggregate(x = geom_new[,"CODGEO_new"], 
                      by = list(geom_new$CODGEO_new), FUN = head, 1)
geom_new <- geom_new[,c("CODGEO_new")]


# Communes nouvelles avant et après fusion
geomfus2011 <- merge(geom2011, df2011[,c("CODGEO", "COM_NOUV")])
geomCN_new <- merge(geom_new, df_new[,c("CODGEO_new", "COM_NOUV")])

geomfus2011 <- geomfus2011[geomfus2011$COM_NOUV == "OUI",]
geomfus2011 <- geomfus2011[,c("CODGEO")]
geomCN_new <- geomCN_new[geomCN_new$COM_NOUV == "OUI",]
geomCN_new <- geomCN_new[,c("CODGEO_new")]

Cinq couches géographiques ont été exportées dans le fichier geom.gpkg (au sein du dossier “data”, cf. Figure 1) :

  • Les géométries communales au 1er janvier 2011 (geom2011).

  • Les géométries communales au 1er janvier de l’année la plus récente pour laquelle des données ont été publiées par l’INSEE (geom_new).

  • Les géométries des communes concernées par une création de communes nouvelles, avant fusion (geomfus2011).

  • Les géométries des communes nouvelles, après fusion (geomCN_new).

  • Une couche d’habillage pour faciliter les représentations cartographiques15 : les départements (dep).

# Export des fichiers consolidés
st_write(obj = geom2011, dsn = "data/geom.gpkg", layer = "geom2011", delete_layer = TRUE, quiet = TRUE)
st_write(obj = geom_new, dsn = "data/geom.gpkg", layer = "geom_new", delete_layer = TRUE, quiet = TRUE)
st_write(obj = geomfus2011, dsn = "data/geom.gpkg", layer = "geomfus2011", delete_layer = TRUE, quiet = TRUE)
st_write(obj = geomCN_new, dsn = "data/geom.gpkg", layer = "geomCN_new", delete_layer = TRUE, quiet = TRUE)
st_write(obj = dep, dsn = "data/geom.gpkg", layer = "dep", 
         delete_layer = TRUE, quiet = TRUE)

4 - Présentation de quelques traitements possibles

Nous proposons ici quelques exemples de traitements rendus possibles par la base de données ainsi constituée.

geom2011 <- st_read("data/geom.gpkg", layer = "geom2011", quiet = TRUE) 
geom_new <- st_read("data/geom.gpkg", layer = "geom_new", quiet = TRUE) 
geomfus2011 <- st_read("data/geom.gpkg", layer = "geomfus2011", quiet = TRUE) 
geomCN_new <- st_read("data/geom.gpkg", layer = "geomCN_new", quiet = TRUE)  
dep <- st_read("data/geom.gpkg", layer = "dep", quiet = TRUE)
load("data/refdata.Rdata")
datafus2011 <- subset(df2011, COM_NOUV == "OUI")
dataCN_new <- subset(df_new, COM_NOUV == "OUI")
dataNfus2011 <- subset(df2011, COM_NOUV == "NON") 

# Import des méta-données
ratio_tt <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "ratios"))
# Comme pour les variables, seuls certains ratios sont sélectionnés
ratio <- subset(ratio_tt, variable_selec == "X")

4.1 - La création des communes nouvelles au cours du temps

Un premier type d’analyse consiste à produire une vision chronologique des créations de communes nouvelles. On propose ici une visualisation du nombre de communes fusionnantes ayant rejoint une commune nouvelle pour une année donnée (on a plusieurs cas de fusions successives)16. Le graphique 1 montre le nombre de communes fusionnantes en fonction de l’année de la fusion (dans ce graphique, comme dans les tables de l’INSEE, les fusions effectives au 1er janvier d’une année n sont notées à l’année n-1). L’intensité variable des fusions au cours du temps y est particulièrement visible, d’où le choix qui a été fait de distinguer différentes périodes (six phases identifiées plus haut, cf. section 3.3.2). Cela permet d’envisager une comparaison des fusions en fonction de l’année de leur réalisation, par exemple sur le nombre de communes, leurs profils etc. On peut également cartographier la répartition des communes fusionnantes, en fonction des phases (Figure 2)17, ce qui permet d’observer une répartition très hétérogène à l’échelle française, déjà discutée (Bideau, 2019) et qui a pu conduire à des études régionales comme dans le Maine-et-Loire (Ohoussa, Margetic, 2020).

# datafus2011 <- comNew # Si on veut partir du fichier juste extrait des tables des communes nouvelles
# datafus2011$CODGEO <- datafus2011$DepComA
datafus2011 <- subset(df2011, COM_NOUV == "OUI") # Désigne les données concernant les communes ayant participé à la création d'une commune nouvelle, appelées ici communes fusionnantes

datafus2011$FusDate <- as.Date(datafus2011$FusDate, tryFormats = "%Y-%m-%d")

datafus2011$FusDateAnnee <- cut(datafus2011$FusDate,
                              breaks = as.Date(c("2011-1-1", "2012-1-2", "2013-1-2", "2014-1-2", "2015-1-2", "2016-1-2", "2017-1-2","2018-1-2", "2019-1-2", "2020-1-2", "2021-1-2", "2022-1-2", "2023-1-2", "2024-1-2")), 
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # NB : On intègre le 1er janvier d'une année n à l'année précédente n-1

time_serie <- data.frame(table(datafus2011$FusDateAnnee))

barplot(time_serie$Freq,  xlab = " ", ylab = "Nombre de communes fusionnantes",
        main = " ",# "Graphique 1 :\nNombre de communes fusionnantes\nen fonction de l'année de fusion",
        ylim = c(0, 1300),
        names.arg = time_serie$Var1)
grid(nx=0, ny = 10, col="gray", lwd=2)

Graphique 1 : Nombre de communes fusionnantes en fonction de l’année de fusion

geomfus2011 <- merge(geomfus2011, datafus2011, by = "CODGEO") # jointure données/géométries

# col <- c("#a50026","#d73027","#f46d43","#fdae61","#fee090", "#ffffbf") # Échelle rouge vers le plus clair
col <- c("#e31a1c", "#fb9a99", "#33a02c", "#b2df8a", "#1f78b4", "#a6cee3") # Échelle composée à partir de https://colorbrewer2.org/?type=qualitative&scheme=Paired&n=6

summary(geomfus2011$FusPhas)
##    Length     Class      Mode 
##      2571 character character
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 1"] <- "Phase 1 2012-2014"
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 2"] <- "Phase 2 2015"
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 3"] <- "Phase 3 2016"
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 4"] <- "Phase 4 2017"
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 5"] <- "Phase 5 2018"
geomfus2011$FusPhas[geomfus2011$FusPhas == "Phase 6"] <- "Phase 6 2019-2024(01)"


svg("figures/Communes fusionnantes (2012-2024) par phases.svg")

plot(st_geometry(dep), border = "#1A1A19", col = "white", lwd = 1)
typoLayer(x = geomfus2011, var = "FusPhas",  
          col=col,
          border = NA, 
          legend.title.cex = 0.7,
          legend.values.cex = 0.6,
          legend.title.txt = " ",
          legend.pos = "left", 
          legend.values.order = c("Phase 1 2012-2014", "Phase 2 2015", "Phase 3 2016", "Phase 4 2017", "Phase 5 2018", "Phase 6 2019-2024(01)"),
          add = T)

layoutLayer(title = " ", # "Figure 2 : Communes fusionnantes (2012-2022) par phases",
            author = "Auteur : G. Bideau.",
            tabtitle = TRUE, frame = FALSE, col = "white", coltitle = "black",
            sources = "Sources : INSEE, IGN, 2024.")
dev.off()
## png 
##   2
# geom2011 <- st_read("data/geom.gpkg", layer = "geom2011", quiet = TRUE) 
carto <- merge(geom2011, datafus2011, by = "CODGEO") # jointure données/géométries

carto <- subset(carto, carto$FusDateAnnee == "2023")

# svg("figures/Communes fusionnantes (2023).svg")

plot(st_geometry(dep), border = "#1A1A19", col = "white", lwd = 1)
# plot(st_geometry(carto))
typoLayer(x = carto, var = "COM_NOUV",  
          col="red",
          border = NA, 
          # legend.title.cex = 0.7,
          # legend.values.cex = 0.6,
          # legend.title.txt = " ",
          legend.pos = "left",
          add = TRUE)
# labelLayer(x = carto, txt = "LIBGEO_new", 
#            cex = 0.9, halo = TRUE, r = 0.15)
layoutLayer(title = "Les communes ayant fusionné pendant l'année 2023",
            author = "Auteur : G. Bideau.",
            tabtitle = TRUE, frame = FALSE, col = "white", coltitle = "black",
            sources = "Sources : INSEE, IGN, 2024.")

# dev.off()


cartoCN <- merge(geomCN_new, dataCN_new, by = "CODGEO_new") # jointure données/géométries
cartoCN$FusDate <- as.Date(cartoCN$FusDate, tryFormats = "%Y-%m-%d")

cartoCN$FusDateAnnee <- cut(cartoCN$FusDate,
                              breaks = as.Date(c("2011-1-1", "2012-1-2", "2013-1-2", "2014-1-2", "2015-1-2", "2016-1-2", "2017-1-2","2018-1-2", "2019-1-2", "2020-1-2", "2021-1-2", "2022-1-2", "2023-1-2", "2024-1-2")), 
                        labels = c("2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022", "2023")) # NB : On intègre le 1er janvier d'une année n à l'année précédente n-1





cartoCN <- subset(cartoCN, cartoCN$FusDateAnnee == "2023")
                
# svg("figures/Communes nouvelles (2023).svg")

plot(st_geometry(dep), border = "#1A1A19", col = "white", lwd = 1)
# plot(st_geometry(cartoCN))
typoLayer(x = cartoCN, var = "COM_NOUV",  
          col="red",
          border = NA, 
          # legend.title.cex = 0.7,
          # legend.values.cex = 0.6,
          # legend.title.txt = " ",
          legend.pos = "left",
          add = TRUE)
labelLayer(x = cartoCN, txt = "LIBGEO_new", 
           cex = 0.9, halo = TRUE, r = 0.15)
layoutLayer(title = "Les communes nouvelles créées pendant l'année 2023",
            author = "Auteur : G. Bideau.",
            tabtitle = TRUE, frame = FALSE, col = "white", coltitle = "black",
            sources = "Sources : INSEE, IGN, 2024.")

# dev.off()

rm(carto)
# Autre carte proposée, avec des cercles pour les communes nouvelles


geom_new <- merge(geom_new, df_new, by = "CODGEO_new") # jointure données/géométries

col <- c("#e31a1c", "#fb9a99", "#33a02c", "#b2df8a", "#1f78b4", "#a6cee3") # Échelle composée à partir de https://colorbrewer2.org/?type=qualitative&scheme=Paired&n=6

# summary(geom_new$FusPhas_ChefLieu)
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 1"] <- "Phase 1 (2012-2014)"
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 2"] <- "Phase 2 (2015)"
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 3"] <- "Phase 3 (2016)"
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 4"] <- "Phase 4 (2017)"
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 5"] <- "Phase 5 (2018)"
geom_new$FusPhas_ChefLieu[geom_new$FusPhas_ChefLieu == "Phase 6"] <- "Phase 6 (2019-2021)"



svg("figures/Communes nouvelles (2012-2024) par phases - cercles.svg")

plot(st_geometry(dep), border = "#1A1A19", col = "white", lwd = 1)


propSymbolsTypoLayer(x = geom_new, var = "NbrComFus", var2 = "FusPhas_ChefLieu",
          col = col,
          border = "black", lwd = 0.15,
          inches = 0.1,
          legend.var.pos = "topright",
          legend.var.title.txt = "Communes\nfusionnantes",
          legend.var.style = "e",
          legend.var2.values.order = c("Phase 1 (2012-2014)", "Phase 2 (2015)", "Phase 3 (2016)", "Phase 4 (2017)", "Phase 5 (2018)", "Phase 6 (2019-2021)"),
          legend.var2.pos = "left",
          legend.var2.title.txt = "Type",
          legend.var2.frame = FALSE,
          add = TRUE)

layoutLayer(title = " ", # "Figure 2 : Communes nouvelles (2012-2022) par phases",
            author = "Auteur : G. Bideau.",
            tabtitle = TRUE, frame = FALSE, col = "white", coltitle = "black",
            sources = "Sources : INSEE, IGN, 2024.")
dev.off()
## png 
##   2
Figure 2 : Communes nouvelles (2012-2024) par phases
Figure 2 : Communes nouvelles (2012-2024) par phases

4.2 - Communes fusionnantes et zonage en aires urbaines

À partir du zonage en aire urbaine élaboré par l’INSEE pour chaque commune (CATAEU2010)18, il est également possible d’analyser globalement le profil des communes fusionnantes en le comparant à celui des communes inchangées.

Les catégories utilisées ici sont celles définies par l’INSEE :

  • 111 : Commune appartenant à un grand pôle (10 000 emplois ou plus)
  • 112 : Commune appartenant à la couronne d’un grand pôle
  • 120 : Commune multipolarisée des grandes aires urbaines
  • 211 : Commune appartenant à un moyen pôle (5 000 à moins de 10 000 emplois)
  • 212 : Commune appartenant à la couronne d’un moyen pôle
  • 221 : Commune appartenant à un petit pôle (de 1 500 à moins de 5 000 emplois)
  • 222 : Commune appartenant à la couronne d’un petit pôle
  • 300 : Autre commune multipolarisée
  • 400 : Commune isolée hors influence des pôles
dataNfus2011 <- subset(df2011, COM_NOUV == "NON") # Les communes, à la géométrie 2011, qui n'ont pas participé à la création d'une commune nouvelle

ZAU_non <- data.frame(dataNfus2011$CATAEU2010)
ZAU_oui <- data.frame(datafus2011$CATAEU2010)

ZAU_non$Fusion <- "Communes inchangées"
ZAU_oui$Fusion <- "Communes fusionnantes"

colnames(ZAU_non)[1] <- "CATAEU2010"
colnames(ZAU_oui)[1] <- "CATAEU2010"

ZAU <- rbind(ZAU_oui, ZAU_non)

ZAU <- table(ZAU$Fusion, ZAU$CATAEU2010)

prop <- prop.table(ZAU, 1) * 100

barplot(prop,
        xlab = "Catégories d'aire urbaine (ZAU INSEE)",
        ylab = "Part du total des communes (%)",
        # names.arg = c("Commune appartenant à un grand pôle", "Commune appartenant à la couronne d'un grand pôle", " Commune multipolarisée des grandes aires urbaines", "Commune appartenant à un moyen pôle", " Commune appartenant à la couronne d'un moyen pôle", "Commune appartenant à un petit pôle", "Commune appartenant à la couronne d'un petit pôle", "Autre commune multipolarisée", "Commune isolée hors influence des pôles"),
       # names.arg = c("Grand pôle", "Couronne d'un grand pôle", " Multipolarisée des\ngrandes aires urbaines", "Moyen pôle", "Couronne d'un moyen pôle", "Petit pôle", "Couronne d'un petit pôle", "Autre commune\nmultipolarisée", "Commune isolée hors\ninfluence des pôles"),

        main = " ",# "Graphique 2 :\nRépartition des communes fusionnantes ou non\nen fonction des catégories d'aire urbaine",
        las = 2,
        border = NA,
        col=c("red","blue"), # "#ff87a9","#f7d358"
        beside = TRUE)

legend(x="topright", legend = rownames(prop) , cex=0.8,
       fill=c("red","blue"),bty="n")     

tab.chi2 <- chisq.test(ZAU)

Graphique 2 : Répartition des communes fusionnantes ou non en fonction des catégories d’aire urbaine

Ainsi, les profils des communes fusionnantes et des communes inchangées sont relativement proches. Les écarts les plus importants se situent aux extrêmes. Les communes fusionnantes sont marquées par une plus faible représentation des communes centres de grands ou moyens pôles dans les communes nouvelles et une sur-représentation des communes multipolarisées ou hors influence des pôles. Un test du Chi² permet de rejeter l’hypothèse d’indépendance des deux variables (X² = 171.1609278, df = 8 et p-value = 7.3647899^{-33}).

D’autres traitements sont évidemment possibles avec la base de données réalisée, comme par exemple l’élaboration d’une typologie à l’aide d’une Classification par Ascendance Hiérarchique (CAH), qui a été réalisée pour les communes créées entre 2012 et le 1er janvier 2020 (Bideau, Ysebaert, 2022a).

4.3 - La répartition des communes fusionnantes par départements

La question de la taille des communes est un enjeu majeur de l’analyse des communes nouvelles. En effet, cette dernière pourrait être un facteur explicatif assez simple. Or une carte avec une trame départementale permet d’observer un résultat contre-intuitif : ce ne sont pas nécessairement les zones où il y a une sur-représentation des petites communes qui fusionnent le plus. Les départements avec de forts taux de communes de moins de 1000 habitants ne sont pas forcément ceux où les petites communes ont fusionné en grand nombre, par exemple dans l’Est de la France. Le pourcentage de communes de moins de 1000 habitants ayant fusionné est d’une manière générale très inégal, et faible dans de nombreux départements. Cela signifie que les procédures de création des communes nouvelles, dans de nombreux départements, ne résolvent pas le sujet des petites communes, alors que c’est un des objectifs du législateur.

ShpDep <- as(dep, "Spatial")

svg("figures/Communes nouvelles et petites communes (2012-2024).svg")
# Carte départementale sur communes de moins de 1000 habitants et nombre de fusions

# Carte choroplèthe en fonction du pourcentage de communes de moins de 1000 habitants
choroLayer(spdf = ShpDep, # SpatialPolygonsDataFrame
           df = FusionsDep, # data frame
           spdfid = "CODE_DEPT",
           dfid = "CODE_DEPT",
           var = "PartComMoins1000habAv",
           # Si on souhaite faire les groupes manuellement :
           # breaks = c(0,0.27,5,10, 37), # liste des seuils (hypothèses)
           # col = carto.pal(pal1 = "turquoise.pal", n1 = 6, pal2 = "blue.pal", n2 = 0),
           # Si on souhaite avoir des groupes par quantiles :
           col = carto.pal(pal1 = "red.pal", n1 = 4), method = "quantile",
           nclass = 4,
           add=FALSE,
           legend.pos = "topleft", 
           legend.title.txt = "Pourcentage de communes\nde moins de 1000 habitants")
# On rajoute les cercles en fonction du nombre de communes de moins de 1000 habitants
propSymbolsLayer(spdf = ShpDep, # Ou à la place on peut utiliser "spdf = Communesfus" créé plus haut
                 df = FusionsDep,
                 spdfid = "CODE_DEPT",
                 dfid = "CODE_DEPT",
                 var = "ComMoins1000habAv",
                 inches = 0.2, fixmax = max(FusionsDep$ComMoins1000habAv),
                 #breakval = 3, # On précise une valeur tournant
                 symbols = "circle", 
                 col = "grey",
                 #col2 = "red",
                 legend.pos = "bottomleft",
                 #legend.pos = "right"
                 #legend.title.txt = "\n\n\n\n\nNombre de\ncommunes\nde moins de\n1000 habitants",
                 legend.title.txt = "Communes\nde moins de\n1000 habitants",
                 legend.style = "c",
                 legend.frame = FALSE,
                 add = TRUE)
# On rajoute les cercles en fonction du nombre de communes ayant fusionné
propSymbolsLayer(spdf = ShpDep, # Ou à la place on peut utiliser "spdf = Communesfus" créé plus haut
                 df = FusionsDep,
                 spdfid = "CODE_DEPT",
                 dfid = "CODE_DEPT",
                 var = "NbrComFus",
                 inches = 0.2, fixmax = max(FusionsDep$ComMoins1000habAv),
                 #breakval = 3, # On précise une valeur tournant
                 symbols = "circle",
                 col = "blue",
                 #col2 = "red",
                 legend.pos = "left",
                # legend.title.txt = "\n\nNombre de\ncommunes\nayant participé à la\ncréation d'une\ncommune nouvelle",
                 legend.title.txt = "\nCommunes\nfusionnantes",
                 legend.style = "c",
                 legend.frame = FALSE,
                 add = TRUE)
layoutLayer(title = "Communes nouvelles et petites communes par départements (2012-2024)", coltitle = "black",
            sources = "                                 Source : INSEE, IGN, 2024", scale = NULL,
            author = "                                  Auteur : G. Bideau", frame ="", col = NA, postitle = "center")
dev.off()
ShpDep <- as(dep, "Spatial")
# Pourcentage du nombre de communes fusionnantes ayant moins de 1000 habitants par rapport au nombre de communes ayant moins de 1000 habitants
FusionsDep$CMoins1000_Fus_prct <- 100 * FusionsDep$ComFusMoins1000hab / FusionsDep$ComMoins1000habAv


svg("figures/Communes nouvelles et petites communes 2 (2012-2024).svg")
# Carte départementale sur communes de moins de 1000 habitants et nombre de fusions

# Carte choroplèthe en fonction du pourcentage de communes de moins de 1000 habitants
choroLayer(spdf = ShpDep, # SpatialPolygonsDataFrame
           df = FusionsDep, # data frame
           spdfid = "CODE_DEPT",
           dfid = "CODE_DEPT",
           var = "PartComMoins1000habAv",
           # Si on souhaite faire les groupes manuellement :
           # breaks = c(0,0.27,5,10, 37), # liste des seuils (hypothèses)
           # col = carto.pal(pal1 = "turquoise.pal", n1 = 6, pal2 = "blue.pal", n2 = 0),
           # Si on souhaite avoir des groupes par quantiles :
           col = carto.pal(pal1 = "red.pal", n1 = 4), method = "quantile",
           nclass = 4,
           add=FALSE,
           legend.pos = "topleft", 
           legend.title.txt = "Pourcentage de communes\nde moins de 1000 habitants")

# On rajoute les cercles en fonction du nombre de communes ayant fusionné et, en couleur, la part des communes fusionnantes de moins de 1000 habitants dans les communes de moins de 1000 habitants

propSymbolsChoroLayer(spdf = ShpDep, # Ou à la place on peut utiliser "spdf = Communesfus" créé plus haut
                      df = FusionsDep, spdfid = "CODE_DEPT", dfid = "CODE_DEPT",
                      var = "ComMoins1000habAv", inches = 0.18,
                      fixmax = max(FusionsDep$ComMoins1000habAv), symbols = "circle",
                      legend.var.pos = "left",
                      legend.var.title.txt = "Communes\nde moins de\n1000 habitants",
                      legend.var.style = "c",
                      legend.var.frame = FALSE,
                      
                      var2 = "CMoins1000_Fus_prct",
                      legend.var2.pos = "bottomleft",
                      legend.var2.title.txt = "Pourcentage\nde communes\nayant fusionné\nparmi celles-ci",
                      add = TRUE)

layoutLayer(title = " ", #"Communes nouvelles et petites communes par départements (2012-2022)", 
            coltitle = "black",
            sources = "                                 Source : INSEE, IGN, 2024.", scale = NULL,
            author = "                                  Auteur : G. Bideau.", frame ="", col = NA, postitle = "center")
dev.off()
## png 
##   2
Figure 3 : Communes fusionnantes et communes peu peuplées : des phénomènes distincts (2012-2024)
Figure 3 : Communes fusionnantes et communes peu peuplées : des phénomènes distincts (2012-2024)

4.4 - Variables de contexte et communes fusionnantes : deux propositions exploratoires

L’existence de variables de contexte dans la base de données permet de comparer les caractéristiques des communes fusionnantes entre elles et par rapport aux communes non fusionnantes. Nous proposons ici deux graphiques concernant deux variables19. L’exploitation plus approfondie des variables de contexte a permis l’élaboration d’une typologie dégageant des profils de communes fusionnantes (Bideau, Ysebaert, 2022a).

Concernant la part des plus de 75 ans dans la population communale et la DGF par habitant, on remarque en premier lieu une assez grande similitude entre l’ensemble des communes fusionnantes et les autres communes. La part des personnes âges est, en revanche, inégale suivant les phases de fusions. Globalement les fusions les plus récentes ont été le fait de communes avec une proportion de plus de 75 ans davantage élevée, alors que la moyenne des communes fusionnantes est légèrement plus élevée que celle des autres communes. La DGF par habitant est peu différenciée, y compris en fonction des phases de fusions. Cependant, cet élément qui est un des moteurs de la décision de fusionner (Bideau, 2019) est au cœur des questions budgétaires, qui constituent notre agenda de recherche pour la suite de ce travail.

# varetud <- c("C09_EMPLT_AGRI_RT", "P09_CHOM1564_RT", "C09_ACTOCC_OUT_RT", "P09_POP75PY_RT", "P09_POP1529Y_RT")
varetud <- c("P09_POP75PY_RT", "P11_DGF_RT")

i <- "P09_POP75PY_RT"

col <- c("#e31a1c", "#fb9a99", "#33a02c", "#b2df8a", "#1f78b4", "#a6cee3", "grey60", "black") # Échelle composée à partir de https://colorbrewer2.org/?type=qualitative&scheme=Paired&n=6


for (i in varetud) {

  # On crée un data frame avec les données souhaitées
  df_boxplot <- df2011[c("COM_NOUV", i, "FusPhas")]
  # Pour simplifier, on modifie les noms des colonnes
  colnames(df_boxplot) <- c("COM_NOUV", "variable", "FusPhas")
  # On indique les communes non fusionnantes
  df_boxplot$FusPhas[is.na(df_boxplot$FusPhas)] <- "Autres\ncommunes"
  df_boxplot$variable[df_boxplot$variable == Inf ] <- NA

  # On rajoute les communes fusionnantes (donc présentes deux fois) en leur adjoignant une nouvelle étiquette, pour avoir leur moyenne globale
  df_boxplot_cfus <- subset(df_boxplot, df_boxplot$FusPhas != "Autres\ncommunes")
  df_boxplot_cfus$FusPhas <- "Communes\nfusionnantes   "
  df_boxplot <- rbind (df_boxplot, df_boxplot_cfus)

  df_boxplot$FusPhas <- factor (df_boxplot$FusPhas, levels = c("Phase 1", "Phase 2", "Phase 3", "Phase 4", "Phase 5", "Phase 6", "Communes\nfusionnantes   ", "Autres\ncommunes"))
  
  # On retire les valeurs manquantes
  df_boxplot <- na.omit(df_boxplot)
  
  # On retire les valeurs extrêmes pour rendre le graphique lisible
  upper.limit <- quantile(df_boxplot$variable, na.rm = TRUE, probs = seq(.01, .99, by = .01))[99]
  df_boxplot <- subset(df_boxplot, df_boxplot$variable <= upper.limit)

  # Pour obtenir le nom de la variable concernée dans le cas des variables en pourcentage
  num_variable <- which(ratio$CODE == i)
  nom_variable <- ratio[num_variable, "DESCRIPTION"]

  boxplot <- ggplot(df_boxplot, aes(x = FusPhas, y = variable, # Utiliser get(i) si noms de colonnes non modifiés
                                    color = FusPhas)) +
    geom_boxplot() +
    scale_color_manual(values=col) +
    ylab(paste0(nom_variable)) +
    xlab("Phase de la fusion") +
    ggtitle(paste0(" ", " "))
  boxplot <- boxplot + scale_fill_discrete(name = "Test_nom_légende")
  boxplot
  print (boxplot)

  # On modifie éventuellement le graphique pour le rendre plus lisible si valeurs extrêmes
  # upper.limit <- quantile(df_boxplot$variable, na.rm = TRUE)[4] + 4*IQR(df_boxplot$variable, na.rm = TRUE)
  # lower.limit <- quantile(df_boxplot$variable, na.rm = TRUE)[2] - 4*IQR(df_boxplot$variable, na.rm = TRUE)
# 
#   upper.limit <- quantile(df_boxplot$variable, na.rm = TRUE, probs = seq(.01, .99, by = .01))[99]
#   lower.limit <- quantile(df_boxplot$variable, na.rm = TRUE, probs = seq(.01, .99, by = .01))[1]
#   
#   print (boxplot + coord_cartesian(ylim=c(lower.limit, upper.limit)))


  # Possibilité de vérifier la fiabilité des données avec le test de Kruskal-Wallis
  ## https://www.datanovia.com/en/fr/lessons/test-de-kruskal-wallis-dans-r/
  # res.kruskal <- df_boxplot %>% rstatix::kruskal_test(variable ~ FusPhas)
  # res.kruskal
  
  # La p-value représente le pourcentage de chance de se tromper en considérant que les différences entre les variables sont significatives. Les valeurs d’interprétation couramment utilisées dans la littérature sont : 0,01- < 0,06 (petit effet), 0,06 - < 0,14 (effet modéré) et >= 0,14 (effet important).

  }

Figures 4 : Part des 75 ans et plus dans la population des communes, distribuées par phases pour les communes fusionnantes

Figures 5 : Dotation Globale de Fonctionnement (DGF) par habitant des communes, distribuées par phases pour les communes fusionnantes

Conclusion

La base de données DAC (Données Agrégées des Communes) 2011-2022 permet une analyse approfondie du phénomène des communes nouvelles, au sein de l’ensemble des communes françaises. Qu’il s’agisse de décrire les entités y ayant participé (les communes fusionnantes), les nouvelles entités créées (les communes nouvelles) ou les transformations qu’impliquent la fusion, de nombreuses études sont possibles, pour compléter les premières approches qui ont pu être proposées à l’aide de cette base (Bideau, 2019 ; Bideau, Giraut, 2022 ; Bideau, Ysebaert, 2022a).

Au-delà de la question des communes nouvelles, les regroupements d’entités géographiques se retrouvent à de multiples échelles et dans de nombreux contextes. L’analyse pourra en être facilitée grâce à la reproductibilité de la démarche et à la possibilité d’intégration de nouvelles données annuelles, en fonction des évolutions des fusions. A posteriori ou a priori, les décisions politiques gagneront toujours à une évaluation ouverte et transparente de leurs conséquences.

Annexes

Liste des variables sélectionnées en amont

Le tableau suivant résume les indicateurs ciblés pour la collecte de données. S’il s’agit de variables de stock, elles constituent alors des numérateurs et dénominateurs qui seront, par la suite, composées en ratios.

Ces données sont accessibles sur les sites des institutions concernées à partir des noms des jeux de données présents dans la table ci-dessous (les chemins sont précisés dans les métadonnées, cf. fichier meta.xlsx). Nous avons utilisé ici les données par âge et en fonction des Catégories Socio-Professionnelles (CSP) car elles nous paraissaient susceptibles, en toute hypothèse, d’être de bons indicateurs pour catégoriser le profil des communes. Cependant, des données bien plus larges (concernant par exemple le sexe ou les secteurs d’activité) sont présentes dans les fichiers sources, leur ajout dans la base de données ne nécessite qu’une sélection au sein du fichier meta.xlsx puis de relancer l’ensemble du code.

variables <- as.data.frame(read_excel("data-raw/meta.xlsx", sheet = "ind_target"))
# Pour sélectionner de nouvelles variables, cocher avec "X" dans le fichier meta.xlsx
target <- subset(variables, variable_selec == "X")
tableau <- target[,c("INSEE_CODE","DESCRIPTION", "SOURCE", "PRODUCTEUR")]
colnames(tableau) <- c("Nom de la variable", "Description", "Source", "Producteur")
# knitr::kable(target[,c("INSEE_CODE","DESCRIPTION", "SOURCE", "PRODUCTEUR")], row.names = F, digits = 1) # Pour export html
ft <- flextable(tableau)
ft <- set_caption(ft, caption = "Tableau annexe 1 : Les indicateurs d'intérêt sélectionnés")
ft <- width(ft, width = 1.7)
ft
Tableau annexe 1 : Les indicateurs d'intérêt sélectionnés

Nom de la variable

Description

Source

Producteur

CODGEO

Code INSEE, découpage géographique au 01/01/2011

Toutes tables

INSEE

LIBGEO

Nom de la commune, découpage géographique au 01/01/2011

Toutes tables

INSEE

CODE_DEPT

Département

Toutes tables

INSEE

CATAEU2010

Catégorie de communes dans le zonage en aires urbaines 2010

Table d'appartenance des communes (2011)

INSEE

REG

Région

Table d'appartenance des communes (2011)

INSEE

ARR

Arrondissement

Table d'appartenance des communes (2011)

INSEE

CV

Canton de ville

Table d'appartenance des communes (2011)

INSEE

UU2010

Unité urbaine 2010

Table d'appartenance des communes (2011)

INSEE

AU2010

Aire urbaine 2010

Table d'appartenance des communes (2011)

INSEE

ZE2010

Zone d'emploi 2010

Table d'appartenance des communes (2011)

INSEE

EPCI

EPCI

Table d'appartenance des communes (2011)

INSEE

P09_ACT1564

Actifs 15-64 ans en 2009

Base Emploi - population active en 2009

INSEE

P09_CHOM1564

Chômeurs 15-64 ans en 2009

Base Emploi - population active en 2009

INSEE

P09_ETUD1564

Elèv. Etud. Stag. non rémunérés 15-64 ans en 2009

Base Emploi - population active en 2009

INSEE

P09_RETR1564

Retraités Préretraités 15-64 ans en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS1

Actifs 15-64 ans Agriculteurs exploitants en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS2

Actifs 15-64 ans Artisans, Comm., Chefs entr. en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS3

Actifs 15-64 ans Cadres, Prof. intel. sup. en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS4

Actifs 15-64 ans Prof. intermédiaires en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS5

Actifs 15-64 ans Employés en 2009

Base Emploi - population active en 2009

INSEE

C09_ACT1564_CS6

Actifs 15-64 ans Ouvriers en 2009

Base Emploi - population active en 2009

INSEE

P09_EMPLT

Emplois au LT en 2009

Base Emploi - population active en 2009

INSEE

C09_EMPLT_AGRI

Emplois au LT Agriculture en 2009

Base Emploi - population active en 2009

INSEE

C09_EMPLT_INDUS

Emplois au LT Industrie en 2009

Base Emploi - population active en 2009

INSEE

C09_EMPLT_CONST

Emplois au LT Construction en 2009

Base Emploi - population active en 2009

INSEE

C09_EMPLT_CTS

Emplois au LT Commerce, Transports, Services divers en 2009

Base Emploi - population active en 2009

INSEE

C09_EMPLT_APESAS

Emplois au LT Adm publique, Enseignement, Santé, Act sociale en 2009

Base Emploi - population active en 2009

INSEE

P09_ACTOCC

Actifs occupés 15-64 ans en 2009

Base Emploi - population active en 2009

INSEE

P09_POP

Population en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP0014

Pop 0-14 ans en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP1529

Pop 15-29 ans en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP3044

Pop 30-44 ans en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP4559

Pop 45-59 ans en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP6074

Pop 60-74 ans en 2009

Base Évolution et structure de la population en 2009

INSEE

P09_POP75P

Pop 75 ans ou plus en 2009

Base Évolution et structure de la population en 2009

INSEE

C09_ACTOCC15P_ILT1

Nombre d'actifs travaillant dans leur commune (ou arrondissement municipal) de résidence

Base Mobilités professionnelles en 2009

INSEE

C09_ACTOCC15P_ILTAUT

Nombre d'actifs travaillant hors de leur commune (ou arrondissement municipal) de résidence

Base Mobilités professionnelles en 2009

INSEE

C09_ACTOCC15P

Total : nombre d'actifs de 15 ans ou plus ayant un emploi

Base Mobilités professionnelles en 2009

INSEE

Potentiel.Financier

Potentiel financier des communes

Potentiel financier

DGCL

dotation.globale.de.fonctionnement

Dotation globale de fonctionnement des communes en 2011

Données comptables et fiscales des collectivités locales

DGCL

Nombre.de.foyers.fiscaux

Nombre de foyers fiscaux dans la commune en 2011

L'impôt sur le revenu par collectivité territoriale

Ministère de l'économie

Revenu.fiscal.de.référence.des.foyers.fiscaux

Revenu fiscal de référence de l'ensemble des foyers imposés sur la commune

L'impôt sur le revenu par collectivité territoriale

Ministère de l'économie

Impôt.net..total.

Impôt net total sur la commune

L'impôt sur le revenu par collectivité territoriale

Ministère de l'économie

Nombre.de.foyers.fiscaux.imposables

Nombre de foyers fiscaux imposables sur la commune

L'impôt sur le revenu par collectivité territoriale

Ministère de l'économie

superficie

Superficie (km²)

Geofla®Communes édition 2011 (France Métropolitaine)

IGN

CIF_2012

Coefficient d'Intégration Fiscal de l'EPCI auquel appartient la commune

DGCL (Adrien Meo)

DGCL

CIF_2015

Coefficient d'Intégration Fiscal de l'EPCI auquel appartient la commune

DGCL (Adrien Meo)

DGCL

Liste des variables de la base DAC (2011-2024(01))

Ce tableau détaille les codes et descriptions des variables contenues dans la base DAC (Données Agrégées des Communes) 2011-2024(01) (c’est-à-dire intégrant les données au 1er janvier 2024).

codes <- names(df2011)
codes_que_df_new <- c("FusDate_ChefLieu", "FusPhas_ChefLieu", "NbrComFus", "FusDateAnnee", "FusDateAnnee_effectivite")

codes <- c(codes, codes_que_df_new)

nums <- target$DESCRIPTION

zau <- c("Petit pôle et couronne de petits pôles (catégories 221 et 222 du zonage en aires urbaines (OUI/NON)",
         "Communes n'appartenant à la couronne d'aucun pôle (catégories 300 et 400 du zonage en aires urbaines (OUI/NON)",
         "Marges sans pôles (catégories 222, 300 et 400 du zonage en aires urbaines (OUI/NON)",
         "Rural profond + petits pôles et couronnes (catégories 221, 222, 300 et 400 du zonage en aires urbaines (OUI/NON)",
         "Périurbain de grands pôles (catégories 112 et 120 du zonage en aires urbaines (OUI/NON)",
         "Typologie regroupée basées sur les aires urbaines : GrdAirUrb (catégories 111, 112, 120), AirUrb (211, 212, 221, 222) et Autres (300, 400)")
change <- c(
            "Est-ce que la commune a fusionné entre 2011 et aujourd'hui (OUI/NON)",
            "Commune nouvelle : Statut de commune chef-lieu (O=OUI, N=NON)",
            "Commune nouvelle : Statut de Commune déléguée (O=OUI, N=NON)",
            "Date d'effet de la création de commune nouvelle",
            "Phase dans le processus de fusion (phase 1 = 2011-2015, 2 = 2015-2016, 3 = 2016-2017, 4 = 2017-2018, 5 = 2018-2020, 6 = 2020-2022",
            "Est-ce que la commune est devenue une commune nouvelle (OUI/NON)",
            "Code INSEE, découpage géographique le plus récent",
            "Nom de la commune, découpage géographique le plus récent")

description_que_df_new <- c("Date d'effet de la création de la commune nouvelle pour la commune chef-lieu [spécifique df_new]",
                            "Phase dans le processus de fusion, pour la commune chef-lieu [spécifique df_new]",
                            "Nombre de communes fusionnantes au sein de la commune nouvelle [spécifique df_new]", 
                            "Année de la fusion, en intégrant le 1er janvier de l'année n+1 à l'année n (donc année globalement de décision)",
                            "Année de la fusion, officielle (1er janvier laissé dans l'année concernée)")


rates <- ratio$DESCRIPTION

label <- c(nums, zau, change, rates, description_que_df_new)
tab <- data.frame(codes, label)
colnames(tab) <- c("Nom de la variable", "Description")
# knitr::kable(tab, row.names = F) # Pour export html
ft <- flextable(tab)
ft <- set_caption(ft, caption = "Tableau annexe 2 : Les variables présentes dans la base de données DAC 2011-2022")
ft <- width(ft, width = 4)
ft
Tableau annexe 2 : Les variables présentes dans la base de données DAC 2011-2022

Nom de la variable

Description

CODGEO

Code INSEE, découpage géographique au 01/01/2011

LIBGEO

Nom de la commune, découpage géographique au 01/01/2011

CODE_DEPT

Département

CATAEU2010

Catégorie de communes dans le zonage en aires urbaines 2010

REG

Région

ARR

Arrondissement

CV

Canton de ville

UU2010

Unité urbaine 2010

AU2010

Aire urbaine 2010

ZE2010

Zone d'emploi 2010

EPCI

EPCI

P09_ACT1564

Actifs 15-64 ans en 2009

P09_CHOM1564

Chômeurs 15-64 ans en 2009

P09_ETUD1564

Elèv. Etud. Stag. non rémunérés 15-64 ans en 2009

P09_RETR1564

Retraités Préretraités 15-64 ans en 2009

C09_ACT1564_Agr

Actifs 15-64 ans Agriculteurs exploitants en 2009

C09_ACT1564_ArtCom

Actifs 15-64 ans Artisans, Comm., Chefs entr. en 2009

C09_ACT1564_Cadr

Actifs 15-64 ans Cadres, Prof. intel. sup. en 2009

C09_ACT1564_ProfInt

Actifs 15-64 ans Prof. intermédiaires en 2009

C09_ACT1564_Empl

Actifs 15-64 ans Employés en 2009

C09_ACT1564_Ouvr

Actifs 15-64 ans Ouvriers en 2009

P09_EMPLT

Emplois au LT en 2009

C09_EMPLT_AGRI

Emplois au LT Agriculture en 2009

C09_EMPLT_INDUS

Emplois au LT Industrie en 2009

C09_EMPLT_CONST

Emplois au LT Construction en 2009

C09_EMPLT_CTS

Emplois au LT Commerce, Transports, Services divers en 2009

C09_EMPLT_APESAS

Emplois au LT Adm publique, Enseignement, Santé, Act sociale en 2009

P09_ACTOCC

Actifs occupés 15-64 ans en 2009

P09_POP

Population en 2009

P09_POP0014

Pop 0-14 ans en 2009

P09_POP1529

Pop 15-29 ans en 2009

P09_POP3044

Pop 30-44 ans en 2009

P09_POP4559

Pop 45-59 ans en 2009

P09_POP6074

Pop 60-74 ans en 2009

P09_POP75P

Pop 75 ans ou plus en 2009

C09_ACTOCC_IN

Nombre d'actifs travaillant dans leur commune (ou arrondissement municipal) de résidence

C09_ACTOCC_OUT

Nombre d'actifs travaillant hors de leur commune (ou arrondissement municipal) de résidence

C09_ACTOCC

Total : nombre d'actifs de 15 ans ou plus ayant un emploi

P11_POT_FIN

Potentiel financier des communes

P11_DGF

Dotation globale de fonctionnement des communes en 2011

P11_FoyFisc

Nombre de foyers fiscaux dans la commune en 2011

P11_Rev_Fisc

Revenu fiscal de référence de l'ensemble des foyers imposés sur la commune

P11_IMP_NET

Impôt net total sur la commune

P11_FoyFisc_Imp

Nombre de foyers fiscaux imposables sur la commune

superficie

Superficie (km²)

CIF_2012

Coefficient d'Intégration Fiscal de l'EPCI auquel appartient la commune

CIF_2015

Coefficient d'Intégration Fiscal de l'EPCI auquel appartient la commune

ZAU_POL

Petit pôle et couronne de petits pôles (catégories 221 et 222 du zonage en aires urbaines (OUI/NON)

ZAU_RUR

Communes n'appartenant à la couronne d'aucun pôle (catégories 300 et 400 du zonage en aires urbaines (OUI/NON)

ZAU_MAR_SP

Marges sans pôles (catégories 222, 300 et 400 du zonage en aires urbaines (OUI/NON)

ZAU_MAR

Rural profond + petits pôles et couronnes (catégories 221, 222, 300 et 400 du zonage en aires urbaines (OUI/NON)

ZAU_PERI

Périurbain de grands pôles (catégories 112 et 120 du zonage en aires urbaines (OUI/NON)

ZAU_AU

Typologie regroupée basées sur les aires urbaines : GrdAirUrb (catégories 111, 112, 120), AirUrb (211, 212, 221, 222) et Autres (300, 400)

FUSION

Est-ce que la commune a fusionné entre 2011 et aujourd'hui (OUI/NON)

ChefLieu

Commune nouvelle : Statut de commune chef-lieu (O=OUI, N=NON)

ComDLG

Commune nouvelle : Statut de Commune déléguée (O=OUI, N=NON)

FusDate

Date d'effet de la création de commune nouvelle

FusPhas

Phase dans le processus de fusion (phase 1 = 2011-2015, 2 = 2015-2016, 3 = 2016-2017, 4 = 2017-2018, 5 = 2018-2020, 6 = 2020-2022

COM_NOUV

Est-ce que la commune est devenue une commune nouvelle (OUI/NON)

CODGEO_new

Code INSEE, découpage géographique le plus récent

LIBGEO_new

Nom de la commune, découpage géographique le plus récent

P09_CHOM1564_RT

Taux de chômage des 15-64 ans (%)

P09_ETUD1564_RT

Part des étudiants, stagiaires, non rémunérés dans les actifs de 15-64 ans (%)

P09_RETR1564_RT

Part des retraités et pré-retraités dans les actifs de 15-64 ans (%)

C09_ACT1564_Agr_RT

Part des agriculteurs dans les actifs de 15-64 ans (%)

C09_ACT1564_ArtCom_RT

Part des artisans, comm., chefs entr. dans les actifs de 15-64 ans (%)

C09_ACT1564_Cadr_RT

Part des cadres, prof. intel. sup. dans les actifs de 15-64 ans (%)

C09_ACT1564_ProfInt_RT

Part des prof. intermédiaires dans les actifs de 15-64 ans (%)

C09_ACT1564_Empl_RT

Part des employés dans les actifs de 15-64 ans (%)

C09_ACT1564_Ouvr_RT

Part des ouvriers dans les actifs de 15-64 ans (%)

C09_EMPLT_AGRI_RT

Part de l'agriculture dans l'emploi au lieu de travail (%)

C09_EMPLT_INDUS_RT

Part de l'industrie dans l'emploi au lieu de travail (%)

C09_EMPLT_CONST_RT

Part de la construction dans l'emploi au lieu de travail (%)

C09_EMPLT_CTS_RT

Part du commerce, transports, services divers dans l'emploi au lieu de travail (%)

C09_EMPLT_APESAS_RT

Part de l'adm publique, enseignement, santé, act sociale dans l'emploi au lieu de travail (%)

P09_POP0014Y_RT

Part des 0-14 ans dans la population totale (%)

P09_POP1529Y_RT

Part des 15-29 ans dans la population totale (%)

P09_POP3044Y_RT

Part des 30-44 ans dans la population totale (%)

P09_POP4559Y_RT

Part des 45-59 ans dans la population totale (%)

P09_POP6074Y_RT

Part des 60-74 ans dans la population totale (%)

P09_POP75PY_RT

Part des 75 ans et plus dans la population totale (%)

C09_ACTOCC_IN_RT

Part des actifs occupés travaillant dans leur commune de résidence (%)

C09_ACTOCC_OUT_RT

Part des actifs occupés travaillant hors de leur commune de résidence (%)

C09_EMP_CONC_RT

Concentration d'emploi au lieu de travail (nombre d'actifs occupés = 100)

P11_POT_FIN_RT

Potentiel financier par habitant (euros)

P11_DGF_RT

Dotation globale de fonctionnement par habitant (euros)

P11_Rev_Fisc_RT

Revenu fiscal de référence par habitant (euros)

P11_IMP_NET_RT

Impôt net par habitant (euros)

P11_FoyFisc_Imp_RT

Pourcentage de foyers fiscaux imposables

FusDate_ChefLieu

Date d'effet de la création de la commune nouvelle pour la commune chef-lieu [spécifique df_new]

FusPhas_ChefLieu

Phase dans le processus de fusion, pour la commune chef-lieu [spécifique df_new]

NbrComFus

Nombre de communes fusionnantes au sein de la commune nouvelle [spécifique df_new]

FusDateAnnee

Année de la fusion, en intégrant le 1er janvier de l'année n+1 à l'année n (donc année globalement de décision)

FusDateAnnee_effectivite

Année de la fusion, officielle (1er janvier laissé dans l'année concernée)

coldf2011 <- colnames(df2011)
coldfnew <- colnames(df_new)

# On liste les variables présentes seulement dans une des tables
setdiff(coldf2011, coldfnew)
setdiff(coldfnew, coldf2011)

Remerciements

Un grand merci à tous ceux qui ont contribué à améliorer ce travail, en particulier Renaud Le Goix et les relecteurs de la revue Cybergéo.

Bibliographie

, 2010, "Loi n-1563 du 16 décembre 2010 de réforme des collectivités territoriales", https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000023239624/
, 2014, "Loi n-58 du 27 janvier 2014 de modernisation de l’action publique territoriale et d’affirmation des métropoles", https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000028526298
, 2015, "Loi n-991 du 7 août 2015 portant nouvelle organisation territoriale de la République", https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000030985460/
, 2019, "Loi n-809 du 1er août 2019 visant à adapter l’organisation des communes nouvelles à la diversité des territoires", https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000038864079
Antunez K., 2017, "COGugaison - manipuler des données communales en historique sur R", https://www.data.gouv.fr/fr/reuses/cogugaison-manipuler-des-donnees-communales-en-historique-sur-r/
Aubelle V., 2016, Les communes nouvelles (P. Gibert & J. Pélissard, Eds.). Paris, Berger-Levrault.
Bideau G., 2019, "Les communes nouvelles françaises (2010-2019) : Une réforme territoriale silencieuse", Annales de Géographie, Vol.728, N°4/2019, 57–85. https://www.cairn.info/revue-annales-de-geographie-2019-4-page-57.htm
Bideau G., 2020, "Loi de 2019 sur les communes nouvelles en France : quelles conséquences pour les territoires ?", Géoconfluences. http://geoconfluences.ens-lyon.fr/actualites/eclairage/loi-communes-nouvelles
Bideau G., Giraut F., 2022, "Faire territoire : logiques de la dénomination des communes nouvelles françaises", L’Espace Politique. Revue en ligne de géographie politique et de géopolitique, N°43. http://journals.openedition.org/espacepolitique/9898
Bideau G., Ysebaert R., 2022a, "Les communes nouvelles françaises (2010-2020) : quels profils pour ces territoires du quotidien remaniés ?", L’Espace géographique, Vol.50, N°2021/1-2, 45–66. https://www.cairn.info/revue-espace-geographique-2021-1-page-45.htm
Bideau G., Ysebaert R., 2022b, "Data paper : Les communes nouvelles françaises (2012-2022) : une méthode pour l’analyse de données à l’échelon municipal selon des limites évolutives", Cybergeo: European Journal of Geography. http://journals.openedition.org/cybergeo/39387
Brennetot A., Ruffray S. de., 2014, "Découper la France en régions", Cybergeo: European Journal of Geography. http://journals.openedition.org/cybergeo/26376
Bussi M., Badariotti D., 2004, Pour une nouvelle géographie du politique: territoire, démocratie, élections. Paris, France, Anthropos.
Comité européen sur la démocratie locale et régionale (CDLR)., 2007, Les relations entre les autorités centrales et les collectivités locales. Conseil de l’Europe. https://rm.coe.int/16807480b3
Doré G., 2021, "Les nouvelles régions en France. Un projet réfléchi ? Des fusions probantes ou non ?", Les Analyses de Population Avenir, Vol.N 32, N°2, 1–28. https://www.cairn.info/revue-analyses-de-population-et-avenir-2021-2-page-1.htm
Dumont G.-F., 2018, "Le bouleversement territorial en France : bilan et perspectives", https://halshs.archives-ouvertes.fr/halshs-01837063
Frinault T., 2017, "Les communes nouvelles : l’invité surprise de la réforme territoriale", Revue française d’administration publique, N°162, 277–294. http://www.cairn.info/revue-francaise-d-administration-publique-2017-2-page-277.htm
Gbenyo K., Dubé J., 2018, "Le Maup et l’insoluble question de frontière optimale", Revue dEconomie Regionale Urbaine, N°3, 619–650. https://www-cairn-info.ezproxy.u-paris.fr/revue-d-economie-regionale-et-urbaine-2018-3-page-619.htm
Grison J.-B., 2016, "Les découpages municipaux en Europe : la France est-elle vraiment une exception ?", EchoGéo, N°35. http://echogeo.revues.org/14522
Kada N., 2017, "Les communes nouvelles , vous avez dit nouvelles ?", Revue française d’administration publique, N°162, 267–276. http://www.cairn.info/revue-francaise-d-administration-publique-2017-2-page-267.htm
Lenfant T., 2018, La commune nouvelle, enjeux et perspectives d’un nouveau régime de fusion des communes. Paris, Université Paris 1 Panthéon-Sorbonne. https://tel.archives-ouvertes.fr/tel-02074131
Ohoussa A. B., Margetic C., 2020, "Les communes nouvelles des Mauges et la réorganisation politique locale (département de Maine-et-Loire)", L’Espace Politique, N°39. http://journals.openedition.org/espacepolitique/7301
Openshaw S., 1983, The modifiable areal unit problem. Norwich, GeoBooks.
Ozouf-Marignier M.-V., Verdier N., 2013, "Les mutations des circonscriptions territoriales françaises. Crise ou mutation ?", Mélanges de l’École française de Rome - Italie et Méditerranée modernes et contemporaines, N°125-2. http://journals.openedition.org.rproxy.sc.univ-paris-diderot.fr/mefrim/1462
Pasquier R., 2017, "Une révolution territoriale silencieuse ? Les communes nouvelles entre européanisation et gouvernance territoriale", Revue française d’administration publique, N°162, 239–252. http://www.cairn.info/revue-francaise-d-administration-publique-2017-2-page-239.htm
Sanders L., 2009, "Chapitre 5. Du lieu au territoire, de l’événement à l’histoire : modèles et échelles", 113–129 in: Modélisation de l’environnement : entre natures et sociétés. Versailles, Éditions Quæ. https://www.cairn.info/modelisation-de-l-environnement-entre-natures-e--9782759203147-page-113.htm
Tellier T., 2017, "La constitution d’un nouveau modèle d’action publique territoriale : la loi Marcellin de 1971 et la fusion de communes", Revue française d’administration publique, N°162, 253–266. http://www.cairn.info/revue-francaise-d-administration-publique-2017-2-page-253.htm
Vanier M., 2002, "La recomposition territoriale", L’information géographique, Vol.66, N°2, 97–97. http://www.persee.fr/doc/ingeo_0020-0093_2002_num_66_2_2799
Verpeaux M., Pecheul A., 2016, Les communes nouvelles. Paris, LexisNexis.
Ville F., 2017, Communes nouvelles: atouts et dangers. Nantes, France, Frédéric Ville - Salientes Editions.
Wong D., Amrhein C., 1996, "Research on the MAUP: Old wine in a new bottle or real breakthrough?", Geographical Systems, Vol.3, N°2-3, 73–76.

  1. Particulièrement avec les lois MAPTAM et NOTRe (“Loi n-58 du 27 janvier 2014 de modernisation de l’action publique territoriale et d’affirmation des métropoles,” 2014 ; “Loi n-991 du 7 août 2015 portant nouvelle organisation territoriale de la République,” 2015).↩︎

  2. Pour une présentation plus complète du package, cf. https://antuki.github.io/COGugaison/articles/COGugaison.html ainsi qu’un partenariat récent avec l’Observatoire des Territoires https://www.observatoire-des-territoires.gouv.fr/kiosque/2021-article-un-diagnostic-de-cog-en-deux-clics. Précisons également que le package a été publié à partir de 2017, c’est-à-dire après le début de nos travaux sur les communes nouvelles et la réalisation de notre base de données, raison pour laquelle nous ne l’avons pas forcément utilisé dans notre démarche.↩︎

  3. Une version du texte de ce data paper est publiée au format RMarkdown (.Rmd) avec le dépôt de données, de manière à documenter le code nécessaire à la reproduction de la démarche. Nous tenons à remercier chaleureusement tous ceux qui ont participé à l’élaboration de ce data paper, en particulier Renaud Le Goix ainsi que les membres du comité de lecture de Cybergéo pour la qualité de leurs remarques et suggestions.↩︎

  4. L’exemple le plus typique est le cas de la commune de l’Oudon, qui a changé plusieurs fois de code officiel, cf. plus bas (section 3.3.2) pour plus de détails.↩︎

  5. Nous désignons ainsi les communes ayant participé à la fusion, parfois appelées également communes « historiques » ; le terme de « commune nouvelle », inscrit dans la loi, désigne la nouvelle entité, après la fusion.↩︎

  6. La mention d’un millésime ne signifie d’ailleurs pas qu’il s’agisse de données recensées sur cette année précisément puisqu’aujourd’hui le recensement général est calculé à partir des données issues de cinq enquêtes, le millésime correspondant à l’année médiane ; cf. les précisions de l’INSEE ici. Les tables de l’INSEE utilisées sont au millésime 2009 mais les tables concernant les données fiscales sont en général au millésime 2011, la collecte des données se faisant différemment.↩︎

  7. Il suffit de sélectionner les variables en question au sein du fichier meta.xlsx puis de relancer l’ensemble du code.↩︎

  8. Les tables de passages de l’INSEE comprennent les fusions du 2 janvier de l’année indiquée jusqu’au 1er janvier de l’année suivante, inclus. Par exemple, la première table de passage, publiée en 2016 et appelée table de passage “2015” comprend toutes les fusions du 2 janvier 2015 au 1er janvier 2016.↩︎

  9. À noter que la variable de superficie n’a pas été importée mais calculée à partir des données de l’IGN.↩︎

  10. Depuis quelques années, la table des fusions de l’année précédente est publiée vers le mois de janvier, celle “de passage” 2003-xxxx et celle “d’appartenance” quelques semaines après.↩︎

  11. Le statut de commune nouvelle a été presque unanimement plébiscité dans le cas de fusions communales depuis 2012. On peut noter comme exception le cas jusqu’ici unique de Fontenoy-le-Château (Vosges), commune nouvelle créée au 1er janvier 2013 mais dont la fusion a été transformée en fusion simple le 7 janvier de la même année.↩︎

  12. Les fichiers fournis par l’INSEE ne sont pas formatés de façon homogène, nécessitant des conversions de format. Par exemple, les dates sont renseignées au format texte jusqu’à 2017 et au format date à partir de 2018. Nous avons préalablement converti les champs date au format texte pour l’ensemble des fichiers. Cela signifie qu’en cas de mise à jour des données ou de modification de l’usage du code par un utilisateur, il faudra de nouveau convertir les dates au format texte au préalable. Ces informations ont été regroupées au sein d’un seul objet.↩︎

  13. Dans certains cas, une date peut ne pas être renseignée car il s’agit, par défaut, de la valeur au 1er janvier de l’année suivante. Ces champs ont alors été complétés, suivant les informations sur les données manquantes dans la documentation des fichiers INSEE disponibles ici).↩︎

  14. Les variables dédiées aux chefs-lieux et aux communes déléguées (codes ChefLieu et ComDLG) ne sont pas inclues dans le jeu de données aux géographies récentes, car non adaptées à ce niveau de granularité géographique. D’autre part, la catégorie de Zonage en Aires Urbaines n’est plus disponible à partir de 2021. À l’inverse, quelques variables sont spécifiques à la base df_new, comme le nombre de communes ayant participé à la création d’une commune nouvelle (NbrComFus).↩︎

  15. D’autres couches peuvent être aisément réalisées à partir des données d’appartenance aux régions, intercommunalités ou autres, contenues dans les jeux de données cités plus haut.↩︎

  16. Dans le cas de fusions successives, nous avons préféré considérer que celles-ci avaient eu lieu en une fois. Par exemple, la commune de Auneau-Bleury-Saint-Symphorien (Eure-et-Loir) est issue officiellement de la fusion de deux communes : Auneau et Bleury-Staint-Symphorien au 1^er janvier 2016 mais cette dernière commune est elle-même le résultat d’une fusion au 1^er janvier 2012 entre Bleury et Saint-Symphorien. Nous avons donc considéré, dans une logique d’analyse plutôt qu’administrative, que la commune nouvelle était le résultat de la fusion de trois communes. Ces cas particuliers restent relativement anecdotiques d’un point de vue statistique.↩︎

  17. Dans le cas de fusions successives, la commune nouvelle est présentée comme ayant été créée à la date de fusion de la commune aujourd’hui chef-lieu.↩︎

  18. Ce zonage est désormais remplacé par le zonage en aires d’attraction des villes (et n’est donc plus disponible pour les géographies administratives depuis le 1er janvier 2021). Cependant, il reste pertinent ici puisqu’il s’agit du zonage disponible pour l’année de référence avant fusion (2011).↩︎

  19. Pour faciliter la lisibilité, les valeurs du centile le plus élevé ont été supprimées de la représentation graphique.↩︎